ddply总结了字符串操作

时间:2012-09-06 20:52:32

标签: r plyr

我现在正在使用ddply。处理数字非常容易。如取小组的均值或标准差。

但我处理字符串很困难。我想在每个子组的同一列中组合字符串,但我不能这样做。我试过cbind paste等等。任何人都可以提供一些帮助吗?

2 个答案:

答案 0 :(得分:8)

collapse=""添加到粘贴语句

ddply(mtcars, .(carb), summarize, cyl_concatenated = paste(cyl, collapse = ""))
#  carb cyl_concatenated
#1    1          4664444
#2    2       8444888444
#3    3              888
#4    4       6686688888
#5    6                6
#6    8                8

答案 1 :(得分:5)

我看到Dason有办法。我宁愿将不同的东西分开并建议:

 ddply(mtcars, .(carb), summarize, cyl_list = list(as.character(cyl)))
#-----------
  carb                     cyl_list
1    1          4, 6, 6, 4, 4, 4, 4
2    2 8, 4, 4, 4, 8, 8, 8, 4, 4, 4
3    3                      8, 8, 8
4    4 6, 6, 8, 6, 6, 8, 8, 8, 8, 8
5    6                            6
6    8                            8

你也可以修改Dason's以使用collapse =“,”这看起来与上面相同,但会有不同的结构。使用list()时,您需要在使用该示例时转换为字符,或者获得因子变量的整数编码。