r - 根据条件合并 R 中的行和值

标签 r dataframe merge

我有以下示例数据:

# data
school = c('ABC University','ABC Uni','DFG University','DFG U')
applicant = c(2000,3100,210,2000)
students = c(100,2000,300,4000)
df = data.frame(school,applicant,students)

我想合并到这个:

|school        |appliant| students |
-----------------------------------
|ABC University| 5100   | 2100     |
|DFG University| 2210   | 4300     |

我运行了这段代码:

df$school[df$school == 'ABC Uni'] = 'ABC University'

但它给了我两次 ABC 大学,而不是将它们合并在一起。

最佳答案

这实际上取决于其余的字符串,但您可以查看 grep 并使用 ^ 开始。

df[grep('^ABC U', df$school), 'school'] <- 'ABC University'
df[grep('^DFG U', df$school), 'school'] <- 'DFG University'

和往常一样聚合

aggregate(cbind(applicant, students) ~ school, df, sum)
#           school applicant students
# 1 ABC University      5100     2100
# 2 DFG University      2210     4300

关于r - 根据条件合并 R 中的行和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68532625/

相关文章:

python - 根据 Pandas 中的当前值填充序列先前值

r - 使用一个指示更新日期的变量将时间相关变量转换为长格式

Git rebase而不是merge,正确的方法是什么?

Python:将字典与列表中的列表合并为值并对它们进行计数

mysql - 如何在不同的MySQL表中指定不同名称的连接变量

r - 如何在数据框中的特定事件后替换值?

r - 除了使用 R 基函数之外,是否有一种有效的方法可以获得 "pmax"?

r - 如何根据 R 中的字典将带有代码的 data.frame 映射到字符串

python - Panda dataframe groupby 和回归计算

git - 为什么 git 在 merge 时会删除在一个分支上添加的行?