我是R的新手,我只是在使用R语言开发时有一些基本的想法。 有一个数据框' df',我需要对数据帧的行进行分组,但它不能使用聚合或通过,因为我没有预定义的函数。
例如,如果原始数据帧' df'是这样的:
id size name
1 100 5
2 100 6
3 100 72
4 200 16
5 50 12
我想输出:
id size name
1 100 5 , 6 , 72
2 200 16
3 50 12
如果可以的话,在file.txt中保存输出?
我使用sink()
和cat()
进行了测试,但cat()
不使用数据框和列表。
答案 0 :(得分:1)
这里有几种快速实现数据帧连接值的方法。
R代码:
# Alternatively toString (@ David Aernburg) you can use c(character) and paste
df_a <- aggregate(name ~ size, c, data =df)
df_a <- aggregate(name ~ size, paste, data = df)
# You can also specify desired separator in collapse
df_a <- aggregate(name ~ size, paste,collapse=",",data=df)
# Using ddply you can specify desired the separator in collapse
library(dplyr)
df_a <- ddply(df, .(size), summarize, rnames = paste(name, collapse = ","))
# Write result to text file
write.table(df_a,file="df_a.txt")
希望这有帮助。
答案 1 :(得分:0)
使用dplyr包:
results <- df %>% group_by(size) %>% summarise (rnames = paste(name,collapse = ","))