【发布时间】:2021-05-20 22:03:46
【问题描述】:
如果这些行代表
示例数据:
| name | Year1 | Year2 | Year3 | Total | Percent |
|---|---|---|---|---|---|
| John | 1 | 2 | 1 | 4 | 0.7029877 |
| Paul | 230 | 100 | 150 | 480 | 84.358524 |
| George | 41 | 30 | 10 | 81 | 14.235501 |
| Ringo | 2 | 1 | 1 | 4 | 0.7029877 |
# Code for example data
name <- c("John", "Paul", "George", "Ringo")
Year1 <- c(1, 230, 41, 2)
Year2 <- c(2, 100, 30, 1)
Year3 <- c(1, 150, 10, 1)
df <- data.frame(name, Year1, Year2, Year3)
df$Total <- rowSums(select(df,Year1:Year3))
df$Percent <- df$Total/sum(df$Total)*100
在解决方案中,John 和 Ringo 将合并为一个“其他”解决方案,因为两者的百分比
# Code for example solution
name <- c("Paul", "George", "Other(n=2)")
Year1 <- c(230, 41, 3)
Year2 <- c(100, 30, 3)
Year3 <- c(150, 10, 2)
df2 <- data.frame(name, Year1, Year2, Year3)
df2$Total <- rowSums(select(df2,Year1:Year3))
df2$Percent <- df2$Total/sum(df2$Total)*100
示例解决方案:
| name | Year1 | Year2 | Year3 | Total | Percent |
|---|---|---|---|---|---|
| Paul | 230 | 100 | 150 | 480 | 84.358524 |
| George | 41 | 30 | 10 | 81 | 14.235501 |
| Other(n=2) | 3 | 3 | 2 | 8 | 1.405975 |
【问题讨论】:
标签: r dataframe replace conditional-statements rowsum