我现在正在使用ddply
。处理数字非常容易。如取小组的均值或标准差。
但我处理字符串很困难。我想在每个子组的同一列中组合字符串,但我不能这样做。我试过cbind
paste
等等。任何人都可以提供一些帮助吗?
答案 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()
时,您需要在使用该示例时转换为字符,或者获得因子变量的整数编码。