r - 如何根据现有数据在 R 中创建百分比表?
问题描述
我想知道如何根据现有数据框中的数据创建一个新的百分比表。
这是我一直在使用的数据示例:
Sample All 1 2 3 4
1 E1 250 29 27 11 18
2 E2 210 36 24 28 21
3 E3 130 29 10 12 23
4 E4 140 33 24 22 14
5 E5 220 27 16 19 18
这是我的代码示例的 dput:
dd <- data.frame(
Sample = c("E1", "E2", "E3", "E4", "E5"),
`All` = c(250, 210, 130, 140, 220),
`1` = c(29, 36, 29, 33, 27),
`2` = c(27, 24, 10, 24, 16),
`3` = c(11, 28, 12, 22, 19),
`4` = c(18, 21, 27, 14, 18),
check.names=FALSE
)
我正在尝试计算第 3:5 列中所有值与第 2 列中值的百分比。
这就是我想要的输出:
Sample All 1 2 3 4
1 E1 250 11.6 10.8 4.4 7.2
2 E2 210 17.1 11.4 13.3 10
3 E3 130 22.3 7.6 9.2 17.69
我试过使用 prop.table 但这并没有给我想要的输出
解决方案
您可以自己构建数据框,只需提取列并自己进行划分。例如
data.frame(dd[,1:2], dd[,-(1:2)]/dd[,2] * 100, check.names=FALSE)
# Sample All 1 2 3 4
# 1 E1 250 11.60000 10.800000 4.400000 7.200000
# 2 E2 210 17.14286 11.428571 13.333333 10.000000
# 3 E3 130 22.30769 7.692308 9.230769 20.769231
# 4 E4 140 23.57143 17.142857 15.714286 10.000000
# 5 E5 220 12.27273 7.272727 8.636364 8.181818
这里我们取前两列,然后取所有其他列除以第二列乘以 100。
推荐阅读
- javascript - 加快对 TouchableWithoutFeedback 的反应
- google-api - Kubernetes 中的符号链接秘密
- powershell - 使用 powershell 将所有打印机复制到新机器
- intellij-idea - 如何在 IntelliJ 中将文件添加到版本控制?
- python - 在对 groupby 执行求和后保留输出中的列
- xml - 第 4 行第 5 列的错误:文档末尾的额外内容
- arduino - Arduino UNO GSM
- java - 如何在不知道 Java 枚举类型的情况下使用反射比较多个枚举?
- java - 如何使用 Log4j 注册额外的 PropertySource?
- windows - Windows - 批量符号链接文件和文件夹递归