简体   繁体   中英

creating table from data in R

I want to create a table from the existing data. I have 5 varieties and 3 clusters in the data. In the expected table I want to show the number and the name of the varieties with the corresponding clusters. But I cannot make it. This is my data

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

My desirable table is like this.

cluster    number   variety name

1            2       a, e
2            2       b,c
3            1       d

I would be grateful if anyone helps me.

The following can give the results you're looking for:

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=','))

Here is one option with tidyverse . Grouped by 'cluster', get the number of rows ( n() ) and paste the 'variety' into a single string ( toString )

library(tidyverse)
data %>%
  group_by(cluster) %>% 
  summarise(number = n(), variety_name = toString(variety))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM