我有一个看起来像这样的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)
如果你想使用dplyr:
dat %>%
mutate(Percent = TotalCount / sum(TotalCount))
Run Code Online (Sandbox Code Playgroud)
请注意,我将列名更改为TotalCount没有空格.
| 归档时间: |
|
| 查看次数: |
69064 次 |
| 最近记录: |