5

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

但是我很难处理字符串。我想将每个子组中同一列中的字符串组合起来,但我做不到。我试过cbind paste了,等等。任何人都可以提供一些帮助吗?

4

2 回答 2

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
于 2012-09-06T20:58:45.223 回答
5

我看到达森有办法。我宁愿将单独的东西分开,并建议:

 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 以使用 collapse=", ",它看起来与上面相同,但结构不同。使用list()该示例时您需要转换为字符,或者您获得因子变量的整数编码。

于 2012-09-06T21:37:40.803 回答