数据帧中单词/句子的共同出现

时间:2017-10-23 13:24:37

标签: r

我是R(做社会科学研究)的新手并且进行内容分析,其中我想寻找共同发生的句子(但每个句子应该被解释为单个单词)。 我的数据框看起来像(header = TRUE):

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

我用表格获取每个类别的频率(unlist(数据)) 但我有兴趣找到o-ccurence:与cat3等同一行中提到cat2的频率是多少?

我相信我必须更改数据,以便R将每个句子处理为一个单位(=一个单词)?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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