繁体   English   中英

在 R 数据框中,对于给定的行,如何找到 A 列中的值与 B 列中的值的百分比?

[英]In an R data frame, for a given row, how can I find what percentage a value in column A is of a value in column B?

假设我有一个数据框,如下所示:

dataDF <- data.frame(
   cola = c(10, 15, 30),
   colb = c(100, 300, 800)
   )


   cola   colb
1  10     100
2  15     300
3  30     800

如何找到第 1 (10) 行是第 b 行第 1 (100) 行的百分比列,依此类推第 2 行和第 3 行?

谢谢。

一种选择是prop.table并指定margin 这里是按行,所以我们用1 ,如果是列,那就是2

prop.table(as.matrix(dataDF), 1)

如果您想要包含百分比的列,另一种有用的方法是:

library(dplyr)

dataDF <- data.frame(
  cola = c(10, 15, 30),
  colb = c(100, 300, 800)
)
dataDF2 <- mutate(dataDF, colc = cola/colb*100)
dataDF2
  cola colb  colc
1   10  100 10.00
2   15  300  5.00
3   30  800  3.75

另一个带有data.table package解决方案:

library(data.table)
setDT(dataDF)[, colc := cola/colb*100]

> dataDT
   cola colb  colc
1:   10  100 10.00
2:   15  300  5.00
3:   30  800  3.75

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM