根据R中的组计算字符串的出现次数

根据R中的组计算字符串的出现次数,r,count,data-manipulation,R,Count,Data Manipulation,这是我的示例数据集 Singer <- c("A","B","C","A","B","D") Rank <- c(1,2,3,3,2,1) data <- data_frame(Singer,Rank) 在这里,我想添加一个列,指出歌手出现了多少次。在这个示例中,“A”和“B”显示两次,“C”和“D”显示一次 我尝试使用“table(unlist())”。但是它在summary函数中不起作用。dplyr解决方案 data Singer Rank 1 A 1

这是我的示例数据集

Singer <- c("A","B","C","A","B","D")
Rank <- c(1,2,3,3,2,1)
data <- data_frame(Singer,Rank)
在这里,我想添加一个列,指出歌手出现了多少次。在这个示例中,“A”和“B”显示两次,“C”和“D”显示一次

我尝试使用“table(unlist())”。但是它在summary函数中不起作用。

dplyr解决方案

data
  Singer Rank
1      A    1
2      B    2
3      C    3
4      A    3
5      B    2
6      D    1
library(tidyverse)
data %>% group_by(Singer) %>% summarize(mean_rank=mean(Rank),count=n())
# A tibble: 4 × 3
  Singer mean_rank count
  <fctr>     <dbl> <int>
1      A         2     2
2      B         2     2
3      C         3     1
4      D         1     1
数据
歌手级别
1 A 1
2 B 2
3 C 3
4 A 3
5 B 2
6天1
图书馆(tidyverse)
数据%>%分组依据(歌手)%>%汇总(平均排名=平均(排名),计数=n()
#一个tibble:4×3
歌手平均排名
1 A 2 2
2B22
3 C 3 1
4 D 1 1
A data.table解决方案

   library(data.table)
   setDT(data)[, list(mean_rank = mean(Rank), count = .N), by = 'Singer']

杰出的。如果它是正确的,请选择它作为最好的答案。
   library(data.table)
   setDT(data)[, list(mean_rank = mean(Rank), count = .N), by = 'Singer']