如何从计数向量计算百分比

jay*_*ran 6 r percentage

我有一个看起来像这样的data.frame:

> dat <- data.frame(Operation = c("Login", "Posted", "Deleted"), `Total Count` = c(5, 25, 40), check.names = FALSE)
> dat
  Operation Total Count
1     Login           5
2    Posted          25
3   Deleted          40
Run Code Online (Sandbox Code Playgroud)

我想计算每个操作的百分比,例如,操作的百分比Login.我希望得到如下结果:

  Operation Total Count Percentage
1     Login           5 0.07142857
2    Posted          25 0.35714286
3   Deleted          40 0.57142857
Run Code Online (Sandbox Code Playgroud)

由于计数已经汇总,table()不起作用:

> table(dat$`Total Count`)

 5 25 40 
 1  1  1 
Run Code Online (Sandbox Code Playgroud)

Pey*_*ton 18

拨打专栏Total.Count而不是Total Count; 名称中的空格不能很好地运作.

如果您将数据放在名为的数据框中,请说my.df:

my.df$Pct <- my.df$Total.Count / sum(my.df$Total.Count)
my.df
##   Operation Total.Count        Pct
## 1     Login           5 0.07142857
## 2    Posted          25 0.35714286
## 3   Deleted          40 0.57142857
Run Code Online (Sandbox Code Playgroud)


Did*_*rts 17

您可以使用函数prop.table()来计算百分比(假设列名称为TotalCount).

df$percent<- prop.table(df$TotalCount)

df
  Operation TotalCount    percent
1     Login          5 0.07142857
2    Posted         25 0.35714286
3   Deleted         40 0.57142857
Run Code Online (Sandbox Code Playgroud)


DAV*_*AVL 5

如果你想使用dplyr:

dat %>% 
  mutate(Percent = TotalCount / sum(TotalCount))
Run Code Online (Sandbox Code Playgroud)

请注意,我将列名更改为TotalCount没有空格.