如何基于相同的值计算R数据帧中的百分比?

如何基于相同的值计算R数据帧中的百分比?,r,R,我有一个数据框架,类似于: > myData User Similar 1 A 1 2 A 1 3 A 1 4 A 1 5 A 0 6 A 0 7 B 0 8 B 0 9 B 0 对这样的事情: > myData User Similar Percentage 1 A 1 66.7% 2 A 0 33.3% 3 B 1 0% 4

我有一个数据框架,类似于:

> myData

  User Similar
1  A     1
2  A     1
3  A     1
4  A     1
5  A     0
6  A     0
7  B     0
8  B     0
9  B     0
对这样的事情:

> myData

  User Similar Percentage
1  A      1    66.7%
2  A      0    33.3%
3  B      1    0%
4  B      0    100%
问题

我想计算与特定用户类似的列上的百分比值10

你知道怎么做吗


提前谢谢

您可以使用
count
计算每个
用户的频率,然后计算比率

library(dplyr)

myData %>%
  mutate(Similar = factor(Similar)) %>%
  count(User, Similar, .drop = FALSE, name = 'Percentage') %>%
  group_by(User) %>%
  mutate(Percentage = Percentage/sum(Percentage) * 100)

#  User  Similar Percentage
#  <chr> <fct>        <dbl>
#1 A     0             33.3
#2 A     1             66.7
#3 B     0            100  
#4 B     1              0  
数据

myData <- structure(list(User = c("A", "A", "A", "A", "A", "A", "B", "B", 
"B"), Similar = c(1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L)), 
class = "data.frame", row.names = c(NA, -9L))

myData感谢您的回答。我可以使用count,但结果与使用prob.table类似吗?您可以将
%%>%pivot\u加宽(name\u from=simple,value\u from=Percentage)
添加到答案中。
myData <- structure(list(User = c("A", "A", "A", "A", "A", "A", "B", "B", 
"B"), Similar = c(1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L)), 
class = "data.frame", row.names = c(NA, -9L))