R输出到txt文件

时间:2014-03-31 05:49:37

标签: r output

我有一个2列的数据框

userID itemID
1       101
1       103
1       107
2       102
2       103
3       104  
...

我想要的输出是将文件写入result.txt
1 \ t 101,103,107
2 \ t 102,103
3 \ t 104
这里\ t表示userID和itemID之间的制表符距离。这不像表那样对齐。我更喜欢Java和Python背景,R中用于通用的低级写入命令是什么?

3 个答案:

答案 0 :(得分:2)

你可以使用dplyr包来实现这个

library(dplyr)

df.summary <- df %.%
  group_by(userId) %.%
  summarise(itemId = paste(itemId, collapse = ","))


write.table(x=df.summary,file='new_file.tsv',sep='\t',row.names=F)

答案 1 :(得分:1)

有点乱,但这会解决问题,将输出写入output.txt

d <- read.table(text='userID itemID
1       101
1       103
1       107
2       102
2       103
3       104', header=T)

cat(sapply(split(d, d$userID), function(x) 
  paste(x$userID[1], paste(x$itemID, collapse=' , '), sep='\t')), 
  sep='\n', file='output.txt')

有关详细信息,请参阅?cat?paste

答案 2 :(得分:0)

以下是使用aggregate的另一个基本解决方案:

> write.table(aggregate(d$itemID, list(d$userID), paste, collapse=' , '),
              file='result.txt', sep='\t', col.names=FALSE, row.names=FALSE, quote=FALSE)
1       101 , 103 , 107
2       102 , 103
3       104