我正在使用stat_keyness函数文本,该函数查看特定文档组与所有其他文档组相比出现频率最高的单词(因此,基本上,您输入目标文档组,而输出是包含以下内容的数据集:单词从最重要到不重要以及其他带有统计信息的列排序。
我有一个字符向量,其中包含我想将凯恩斯分析应用于的文档组的所有名称:
interests_list <- c(unique(data$interest))
(看起来是:chr“ 0”,“ 340”,“ 456”等。基本上每个数字对应一组文档)
我可以轻松地将stat_keyness应用于单个文档,如下所示
keyness <- dfm(dfmat_data, groups = "group_interest")
#Calculate keyness and determine audience as target group, compare frequencies of words
between target and reference documents.
result_keyness <- textstat_keyness(keyness, target = "17627")
问题是我不想为每个组分别运行stat_keyness,因为我有大约100个组。我当时正在考虑使用for循环,但是不确定[[如何创建由文本stat_keyness生成的所有数据框的列表到目前为止,我已经写了这篇文章,但我不知道如何存储我将获得的所有结果
for(i in interest_list) {textstat_keyness(keyness, target = i )
}
否则,我尝试使用apply但它不起作用
keylist <- lapply(keyness, textstat_keyness(keyness, target = interest_list ))
知道如何以任何有效的方式获取我的数据帧列表的想法吗?非常感谢,
卡洛
textstat_keyness
函数的结果?代码:keylist <- list()
for (i in 1:length(interest_list)) {
keylist[[i]] <- textstat_keyness(keyness, target = interest_list[i])
}
lapply
的解决方案。keylist <- lapply(interest_list, function(i) textstat_keyness(keyness, target = i))
请注意,lapply本质上是一个for
循环,该循环始终返回一个列表。JaiPizGon使用的表示法也是正确的,只有在R中增长对象时应小心-参见“ R Inferno”中的第2章。
因此,如果您更喜欢使用
for
循环,建议您在分配之前指定列表的大小,即:
keylist <- vector("list", length(interest_list)) for(i in seq_along(interest_list)) { keylist[[i]] <- textstat_keyness(keyness, target = interest_list[i]) }