在R中,将数据帧分组并保存到文件.txt中

时间:2015-01-20 13:29:06

标签: r

我是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()不使用数据框和列表。

2 个答案:

答案 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 = ","))