R-将值添加到符合特定条件的数据框

标签 r dataframe match

我有以下两个数据框:

d <- data.frame(c1 = c("A","A","B","C","A","C","D","D"))

map <- data.frame(c1 = c("A","B","C","D"), c2 = c(12,14,16,25))

如何在数据框d中添加另一个称为“匹配”的列,其中包含在数据框图中找到的对应值?因此,数据帧d应该看起来像:
A 12
A 12
B 14
C 16
A 12
C 16
D 25
D 25

提前谢谢了!

最佳答案

使用名为match的函数:

d$match <- map$c2[match(d$c1,map$c1)]

并且由于指定了这些级别的方式,您还可以执行以下操作:
d$match <- map$c2[d$c1]

但这仅在match中的每一行按顺序完全匹配c1因子的水平时才有效。

关于R-将值添加到符合特定条件的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492161/

相关文章:

c++ - 如何使用 Rcpp 库将 C++ 中包含 double 值的 vector vector 转换为 R 中的矩阵?

r - 在每个月末计算入职日期和退休日期的 worker 人数

html - Powershell正则表达式匹配除第一个以外的字符串

使用 Sparklyr 包时,R 未检测到安装的最新 Java 版本 (1.8)

python - pandas stack and unstack performance reduced after dataframe compression 并且比 R 的 data.table 差很多

dataframe - Glue PySpark - 固定宽度文件处理和验证

python - 从 pandas groupby 对象返回每个组的子集

mysql - SQL 按匹配特定行排序

python - 使用字符串搜索 Pandas 系列会产生 KeyError

r - 如何在 R 中进行查找和填充(就像在 Excel 中一样)?