2013-02-19 72 views
1

我有如下形式的函数输出(来自koRpus):887 的类型总数::393R回路-csv

考词汇多样性 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") 
} 

其中红外线是:

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

感谢所有帮助

+1

为什么这不适合你?你期望的结果是什么,你现在看到了什么?此外,如果您可以使用'dput'为'whypar'提供至少一个最小数据集,则我们可以更容易地提供帮助。 – Justin 2013-02-19 17:10:18

+0

'dput(infra)'或'head(infra)'可能会帮助我们查看您的数据结构 – 2013-02-19 17:11:53

+0

您不能简单地将'data.frame'作为由MTLD创建的S4对象。我不熟悉文本挖掘,但也许你想要这个对象的一个​​插槽。衡量文本词汇多样性的哪一部分是你对每个文件感兴趣的。使用'str(res.mtld)'来检查你的对象并找到你感兴趣的位。 – 2013-02-19 17:32:21

回答

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 <- [email protected]$MTLD 
    fac.size <- [email protected]$factor.size 
    mtld.sd <- [email protected]$lengths$sd 
    mtld.sd.compl <- [email protected]$lengths$sd.compl 
    res <- rbind(res , c(infra$tableid[i] , mtld, fac.size , mtld.sd , mtld.sd.compl)) 
} 
    write.csv(res , file="output.csv") 

我希望这可以帮助,但检查这些都是你希望返回的结果。

+0

谢谢。它的工作原理与预期完全一样......我对插槽不熟悉。 – 2013-02-19 20:02:50

+0

@JorgePerez由于这个工作正如预期的那样,请您按下我答案旁边的绿色勾号,以便可以从未回答的问题堆栈中删除此问题。保持网站的策划非常重要。提前感谢你。 – 2013-03-09 15:37:07