我下面有数据框,我想添加一个新列,其中包含该数据框每个值的百分比。像这样:
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)
但是我得到的是资产净值而不是百分比。
答案 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