本文介绍了根据行名折叠,但列出所有折叠值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个要根据行名折叠的数据框,在列中列出所有值(见下文):
I have a data frame which I'd like to collapse based on row names, list all the values in a column (see below):
name value
nameA 10
nameA 3
nameA 5
nameB 5
nameC 1
nameC 44
我想生成此输出:
name value
nameA 10,3,5
nameB 5
nameC 1,44
我可以为此使用aggregate()吗?我以类似的方式将R中的值求和?
Can I use aggregate() for this? similar way I sum the values in R?
谢谢!
推荐答案
您的预期输出实际上未对任何值求和。而是将它们串联起来。您可以在汇总
调用中使用 c
函数。
Your expected output is not actually summing any values. Rather, you are concatenating them. You can use the c
function in your aggregate
call.
aggregate(value ~ name, dat, c)
# name value
# 1 nameA 10, 3, 5
# 2 nameB 5
# 3 nameC 1, 44
其中 dat
是您的数据。
您还可以使用粘贴
或 toString
(基本上是 paste(...,crash =,
)。
You could also use paste
, or toString
(which is basically paste(..., collapse = ", "
).
aggregate(value ~ name, dat, toString)
# name value
# 1 nameA 10, 3, 5
# 2 nameB 5
# 3 nameC 1, 44
aggregate(value ~ name, dat, paste, collapse = ",")
# name value
# 1 nameA 10,3,5
# 2 nameB 5
# 3 nameC 1,44
或者,您可以使用 dplyr
library(dplyr)
group_by(dat, name) %>% summarize(value = toString(value))
# name value
# 1 nameA 10, 3, 5
# 2 nameB 5
# 3 nameC 1, 44
这篇关于根据行名折叠,但列出所有折叠值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!