我想从现有数据创建一个表。我在数据中有5个品种和3个聚类。在期望的表中,我想显示带有相应簇的品种的编号和名称。但是我做不到。这是我的数据
variety<-c("a","b","c","d","e")
cluster<-c(1,2,2,3,1)
x <- cbind(variety, cluster)
data <- data.frame(x)
data
variety cluster
1 a 1
2 b 2
3 c 2
4 d 3
5 e 1
我想要的表是这样的。
cluster number variety name
1 2 a, e
2 2 b,c
3 1 d
如果有人帮助我,我将不胜感激。
答案 0 :(得分:1)
以下内容可以提供您想要的结果:
library(plyr)
variety<-c("a","b","c","d","e")
cluster<-c(1,2,2,3,1)
x <- cbind(variety, cluster)
data <- data.frame(x)
data
ddply(data,.(cluster),summarise,n=length(variety),group=paste(variety,collapse=','))
答案 1 :(得分:1)
这是tidyverse
的一个选项。按“群集”分组,将行数(n()
)和paste
的“变量”分成单个字符串(toString
)
library(tidyverse)
data %>%
group_by(cluster) %>%
summarise(number = n(), variety_name = toString(variety))