将一个新列添加到该数据框,其中包含该数据框的每个值的百分比

时间:2019-06-14 23:20:50

标签: r

我下面有数据框,我想添加一个新列,其中包含该数据框每个值的百分比。像这样:

name <- c("asdad","dssdd")
number <- c(5,5)
df <- data.frame(name,number)

for (i in 1:nrow(df)) {
  percentage<-df[i,1]/sum(df$number)
}

new <- cbind(df, percentage)

但是我得到的是资产净值而不是百分比。

2 个答案:

答案 0 :(得分:2)

如评论中所述,以下是解决方案。

library(dplyr)
df %>% mutate(Percentage = number/sum(number))

Output:
   name number Percentage
1 asdad      5       0.25
2 dssdd      5       0.25
3  assa     10       0.50

答案 1 :(得分:1)

为什么要循环播放?此外,为什么要更改单个变量,然后尝试像矢量一样将其绑定?

一种更简单的方法是添加一列,即df$percentage <- df$number/sum(df$number)*100