【问题标题】:create a list with the results (dataframes) of the same functions applied on a list of inputs in R创建一个列表,其中包含应用于 R 中的输入列表的相同函数的结果(数据帧)
【发布时间】:2020-03-20 15:20:58
【问题描述】:

我正在使用函数 text 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 循环,但我不确定 如何创建由 text stat_keyness 生成的所有数据帧的列表 到目前为止我写了这个,但我不知道如何存储我将获得的所有结果

for(i in interest_list) {textstat_keyness(keyness, target =  i )

}

否则,我尝试了 apply 但它不起作用

keylist <- lapply(keyness, textstat_keyness(keyness, target = interest_list ))

知道如何以任何有效的方式获取我的数据框列表吗?

非常感谢,

卡洛

【问题讨论】:

    标签: r loops for-loop foreach


    【解决方案1】:

    JaiPizGon 提供的 for 循环的替代方案是 lapply 的解决方案。

    keylist <- lapply(interest_list, function(i) textstat_keyness(keyness, target = i))
    

    请注意,lapply 本质上是一个for 循环,它总是返回一个列表。

    JaiPizGon 使用的符号也是正确的,只是在 R 中增长对象时应该小心 - 请参阅“The 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])
    }
    

    【讨论】:

      【解决方案2】:

      您是否尝试过初始化列表并分配textstat_keyness 函数的结果? 代码:

      keylist <- list()
      for (i in 1:length(interest_list)) {
          keylist[[i]] <- textstat_keyness(keyness, target =  interest_list[i])
      }
      

      【讨论】:

        猜你喜欢
        • 2021-09-18
        • 2021-01-01
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        • 2017-03-29
        • 1970-01-01
        • 1970-01-01
        • 2017-02-14
        相关资源
        最近更新 更多