当我使用row.names=file.names[i]
函数时,看起来没有write.table
选项。例如,假设在文件夹中我有3个名为“file_1”,“file_2”和“file_3”的文件,那么在输出csv
文件中,我希望看到以下结果:
"","keyword","totalword"
"file_1",10,4348
"file_2",1,1635
"file_3",1,3237
for(i in 1:length(file.names)){
## calculate number of keywords and total words for each file within a folder
x <- data.frame(keyword,totalword)
write.csv(x, file="results.csv",row.names = TRUE)
}
使用上面的代码,我所能获得的是以下内容:
"","keyword","totalword"
"1",10,4348
"2",1,1635
"3",1,3237
任何人都知道如何使用每个原始文件的名称指定行名称(即将“1”“2”“3”更改为“file_1”,“file_2”,“file_3”?
答案 0 :(得分:1)
你有'file.names'文件的名称,所以只需更改
x <- data.frame(keyword,totalword)
到
x <- data.frame(file.names[i],keyword,totalword)
你可能不得不摆脱row.names = TRUE
。
答案 1 :(得分:0)
使用这些数据:
keyword<-c(10,1,1)
totalword<-c(4348,1635,3237)
以下是一些选项:
x<-data.frame(keyword,totalword,row.names=paste0('file_',1:3))
write.csv(x, file="results.csv",row.names = TRUE)
或
x<-data.frame(keyword,totalword)
rownames(x)<-paste0('file_',1:3)
write.csv(x, file="results.csv",row.names = TRUE)
或
write.csv(x,file="results.csv",row.names=paste0('file_',1:3))
所有这些都会在CSV文件中返回:
"","keyword","totalword"
"file_1",10,4348
"file_2",1,1635
"file_3",1,3237
我假设你有3行,然后你写了一个csv。如果你想在csv中写一行然后是下一行,依此类推(每次迭代一行),你可以这样做:
write.csv(x,file="results.csv",append=TRUE,row.names=paste0('file_',i))