【问题标题】:R loop for creating and using -csv用于创建和使用 -csv 的 R 循环
【发布时间】:2013-02-19 17:00:39
【问题描述】:

我有一个形式的函数输出(来自 koRpus): 代币总数:887 类型总数:393

文本词汇多样性的度量 MTLD:142.66 因子数:6.22 因子大小:0.72 SD代币/因子:41.55(所有因子) 38(仅全因数)

我想创建一个循环来存储 80 个不同文档的这些结果。我尝试了以下方法:

for (i in 1:length(infra$tableid)) {
  whypar <- paste(infra$whypar [infra[,1] ==i], collapse=" ")
wpi<- removeWords(whypar, stopwords("english"))

as.data.frame(wpi)
write.csv(data.frame(wpi), file= "wp.csv")

tagged.text <- tokenize("wp.csv", lang="en")

res.mtld <- MTLD(tagged.text)
  write.csv(data.frame(res.mtld),file="output.csv")
}

infra 在哪里:

tableid 1, 2, 3, ... 80
whypar "I took part because xxx", "I believe that jshfdjk", "jhsadkjhd" ... (N=350)

感谢您的帮助

【问题讨论】:

  • 为什么这对你不起作用?你想要的结果是什么,你现在看到了什么?此外,如果您可以使用dputwhypar 提供至少一个最小数据集,我们将更容易提供帮助。
  • dput(infra)head(infra) 可能会帮助我们查看您的数据结构
  • 不能简单地data.frame MTLD 创建的S4 对象。我不精通文本挖掘,但也许你想要这个对象的插槽之一。您对每个文件的文本词汇多样性度量的哪一部分感兴趣。使用str(res.mtld) 检查您的对象并找到您感兴趣的位。

标签: r loops output


【解决方案1】:

首先提取您感兴趣的 MTLD 对象部分。从您的问题来看,您似乎只对 MTLD 返回的对象的子集感兴趣,即 MTLD 分数、因子数、令牌/因子的 SD 和仅完整因子的 SD。如果你只想要每个文件的这些结果,你可以写一个漂亮的表作为所有文件的输出:

res <- data.frame( ID = numeric() , MTLD=numeric() , Factor_Size=numeric() , SD=numeric() , SD_Complete=numeric() )
for (i in 1:length(infra$tableid)) {
  whypar <- paste(infra$whypar [infra[,1] ==i], collapse=" ")
  wpi<- removeWords(whypar, stopwords("english"))

  wpi <- as.data.frame(wpi)
  write.csv(data.frame(wpi), file= "wp.csv")

  tagged.text <- tokenize("wp.csv", lang="en")

  res.mtld <- MTLD(tagged.text)
  mtld <- res.mtld@MTLD$MTLD
  fac.size <-  res.mtld@param$factor.size
  mtld.sd <- res.mtld@MTLD$lengths$sd
  mtld.sd.compl <- res.mtld@MTLD$lengths$sd.compl
  res <- rbind( res , c( infra$tableid[i] , mtld, fac.size , mtld.sd , mtld.sd.compl ) )
}
  write.csv( res , file="output.csv" )

我希望这会有所帮助,但请检查这些是您想要返回的结果。

【讨论】:

  • 谢谢。它完全按预期工作......我不熟悉插槽。
  • @JorgePerez 由于这完全按预期工作,请您按我的答案旁边的绿色勾号,以便可以从未回答的问题堆栈中删除此问题。保持网站精心策划很重要。提前感谢您。
猜你喜欢
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 2021-03-14
  • 2018-02-18
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多