我有2列r輸出至txt文件
的數據幀userID itemID
1 101
1 103
1 107
2 102
2 103
3 104
...
我想輸出是寫一個文件的Result.txt
1 \噸101,103,107
2 \ t 102,103
3 \ t 104
這裏\ t表示用戶標識和itemID之間的標籤距離。這不像表格那樣對齊。我更多的是Java和Python背景,R中的底層寫入命令是通用目的是什麼?
我有2列r輸出至txt文件
的數據幀userID itemID
1 101
1 103
1 107
2 102
2 103
3 104
...
我想輸出是寫一個文件的Result.txt
1 \噸101,103,107
2 \ t 102,103
3 \ t 104
這裏\ t表示用戶標識和itemID之間的標籤距離。這不像表格那樣對齊。我更多的是Java和Python背景,R中的底層寫入命令是通用目的是什麼?
您可以使用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)
有點亂,但是這也有問題,寫輸出到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
。
下面是使用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