我是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将每个句子处理为一个单位(=一个单词)?
非常感谢任何帮助。
答案 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