簡體   English   中英

將 integer 數值轉換為百分比

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM