将值更改为R中行的百分比

时间:2015-07-26 14:18:12

标签: r percentage

这是我的数据

  A B C
A 9 1 0 
B 2 2 2
C 3 3 3

我希望获得每行的百分比

我期待的数据是

     A    B    C
A  0.9  0.1    0 
B 0.33 0.33 0.33
C 0.33 0.33 0.33

我用'dcast'制作了数据,A,B和C上有列名。 实际上我的真实数据是

  Name    A    B    C
1    A  0.9  0.1    0 
2    B 0.33 0.33 0.33
3    C 0.33 0.33 0.33

1 个答案:

答案 0 :(得分:16)

似乎是一个公平的案例

df/rowSums(df)
#           A         B         C
# A 0.9000000 0.1000000 0.0000000
# B 0.3333333 0.3333333 0.3333333
# C 0.3333333 0.3333333 0.3333333

如果您在点集options(digits = 2)之后不想要这么多数字或使用print(df/rowSums(df), digits = 2)或使用round

round(df/rowSums(df), 2)
#      A    B    C
# A 0.90 0.10 0.00
# B 0.33 0.33 0.33
# C 0.33 0.33 0.33

或者按照@akrun

的建议
round(prop.table(as.matrix(df1),1),2)