[英]Convert the integer numeric numbers into percentages
在输入数据结构中
data.frame(stockname = c("google", "amazon"), open= c(30, 40), close = c(32, 48))
如何使用数据框所有行的总和来计算百分比,如何将每行中存在的整数转换为相应的百分比。
输入数据的所有行的总和为 150,因此百分比示例 output 数据帧为
data.frame(stockname = c("google", "amazon"), open= c(20%, 26.7%), close = c(21.3%, 32%))
也许这就是你所追求的
df[-1] <- df[-1] / sum(df[-1])
这使
> df
stockname open close
1 google 0.2000000 0.2133333
2 amazon 0.2666667 0.3200000
这可以使用prop.table
来完成:
df[-1] <- prop.table(df[-1])
df
# stockname open close
# 1 google 0.2000000 0.2133333
# 2 amazon 0.2666667 0.3200000
如果您也对格式化 output 感兴趣,请查看sprintf
。 再次从源数据开始,尝试:
df[-1] <- sprintf("%.1f%%", unlist(prop.table(df[-1])) * 100)
df
# stockname open close
# 1 google 20.0% 21.3%
# 2 amazon 26.7% 32.0%
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.