我有一个函数输出(来自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)
感谢您的帮助
答案 0 :(得分: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" )
我希望这会有所帮助,但请检查这些是您想要返回的结果。