我想总结一个数据框,以便列包含特定组中唯一值的字符串。所以使用虹膜数据集:
iris %>%
group_by(Species) %>%
summarise(mPW=mean(Petal.Width))
这给出了按物种分组的Petal.Width的平均值。但是,如果我想将所有用于计算该值的值作为输出,那该怎么办呢?我希望列表中的这些唯一值虽然不在列表的R含义中。我试过了,但显然这是错的:
iris %>%
group_by(Species) %>%
summarise(lPW=paste(Petal.Width, sep=","))
这是截断的所需示例数据帧输出。请注意,LPW
的所需输出是一个字符对象:
Species lPW
setosa 0.1,0.2,0.3,0.4,0.5,0.6
....
我没有设置dplyr
解决方案。这就是我正常工作的方式。
提前致谢。
答案 0 :(得分:6)
将我的评论提升为答案:使用collapse
代替sep
:
iris %>%
group_by(Species) %>%
summarise(lPW = paste(Petal.Width, collapse=","))
如果要将此限制为仅限唯一值,可以使用:
iris %>%
group_by(Species) %>%
summarize(lPW = paste(unique(Petal.Width), collapse = ","))
答案 1 :(得分:1)
# dplyr_0.4.3
iris %>%
select(Species, Petal.Width) %>%
mutate(Petal.Width = as.character(Petal.Width)) %>%
unique() %>%
group_by(Species) %>%
summarize(lPW = paste(as.character(Petal.Width), collapse = ","))