【问题标题】:Replacing values in a data frame with values in a second data frame if satisfies a condition如果满足条件,则将数据框中的值替换为第二个数据框中的值
【发布时间】:2016-06-22 11:18:46
【问题描述】:

我有两个数据框:“bim2”

enter image description here

和“照明”。

enter image description here

如果 bim2 的 V2 与 illum V1 (match(bim2$V2, illum$V1)) 匹配,我想将 bim$V2 替换为 illum$V2 中的值。如果不匹配(bim2$V2 不等于illum$V1),我想保留bim$V2 中的原始值。

我用过

bim2$V2 <- illum$V2[match(bim2$V2, illum$V1)]

但它用 NA 替换了“bim2$V2 not equal to illum$V1”。

【问题讨论】:

  • 它们的大小相同吗?可以提供样品吗?
  • 请仔细阅读您的问题。您说您的 data.frame 是 bim,但您在代码中使用了 bim2。还要确保更换的描述是正确的。它与您的match 代码不一致:例如illum$v1
  • 欢迎来到 StackOverflow!这将帮助你写出很棒的 R 问题stackoverflow.com/questions/5963269/…
  • @akash87 大小相同,谢谢

标签: r replace dataframe logic conditional


【解决方案1】:

修改你给定的代码,你可以这样做:

bim2$V2[match(bim2$V7, illum$V1)] <- illum$V2[match(bim2$V7, illum$V1)]

它将替换匹配的值,并保留其余值。我希望,这行得通

【讨论】:

  • @GorrilleiFalciani 它将保留不匹配的值并仅替换 bim2$V7 和 illum$V1 匹配的值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
相关资源
最近更新 更多