2017-10-23 12 views
-1

私はRに新しい(社会科学の研究をしている)と共起する文を探したいコンテンツ分析を持っています(しかし、各文は単一の単語として解釈されるべきです)。 私のデータフレームは、(ヘッダ= TRUE)のようになります。データフレーム内の単語/文の共起

cat1 cat2 cat3 
sentence1 NA NA 
sentence1 NA sentence3 
sentence1 sentence2 sentence3 
NA NA sentence3 
NA NA NA 

は、私は、テーブルと各カテゴリーの周波数(非公開に(データ)) を取得するが、私はO-ccurenceを見つけることに興味があります:どのくらいの頻度でCAT2は言及されていますcat3などと同じ列にありますか?

Rが各文を1単位(= 1語)として処理するようにデータを変更する必要があると思いますか?

ご迷惑をおかけして申し訳ありません。

答えて

0

これは "文" は、あなたの編集したデータ

df <- read.table(text="cat1 cat2 cat3 
sentence1 NA NA 
sentence1 NA sentence3 
sentence1 sentence2 sentence3 
NA NA sentence3 
NA NA NA", header=TRUE, stringsAsFactors=FALSE) 

ソリューション

result <- apply(df, 1, function(x) if(length(unique(x[!is.na(x)])) > 1) { 
          apply(combn(unique(x[!is.na(x)]), 2), 2, function(y) paste(y, collapse="")) 
         } else { 
          unique(x[!is.na(x)]) 
         }) 
answer <- table(Reduce("c", result)) 

出力

# sentence1 sentence1sentence2 sentence1sentence3 sentence2sentence3   sentence3 
     # 1     1     2     1     1 
+0

を使え

のために働くかもしれませんカテゴリ/行ごとに異なります。私は、同時発生する文章を探しています。どのくらいの頻度でsentence1がsentence2と共起しているかなどです。解決策は、各行に違いのある文があるため、0件の一致が得られます。 – Curry79

+0

あなたはそうです。おそらく、最小限の再現可能な例を更新することができます。 – CPak

+0

完了。上記の私の例を更新しました – Curry79

関連する問題