【问题标题】:change value to percentage of row in R [duplicate]将值更改为R中的行百分比[重复]
【发布时间】:2015-07-26 14:18:12
【问题描述】:

这是我的数据

  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

【问题讨论】:

    标签: r percentage


    【解决方案1】:

    对于

    来说似乎是一个公平的案例
    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)
    

    【讨论】:

    • 你也可以包含round(prop.table(as.matrix(df1),1),2)这个选项
    • @akrun 你为什么要删除你的解决方案?
    • 数据结构问题。如何去掉列名?
    • df[-1]/rowSums(df[-1]) 可能
    猜你喜欢
    • 2016-07-07
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多