gpt4 book ai didi

r - 如何匹配 1 列到 2 列?

转载 作者:行者123 更新时间:2023-12-02 00:12:31 27 4
gpt4 key购买 nike

我正在尝试将一列中的数字与其他两列中的数字进行匹配。当仅匹配到单个列时,我可以很好地做到这一点,但在扩展到两列时会遇到问题。这是我正在做的:

我有 2 个数据框,df1:

number  value
1
2
3
4
5

和 df2:

number_a    number_b    value
3 3
1 5
5 1
4 2
2 4

我想做的是将 df1 中的“number”列与 df2 中的“number_a”或“number_b”相匹配,然后将 df2 中的“value”插入到 df1 的“value”中,得到结果 df1 为:

number  value
1 5
2 4
3 3
4 2
5 1

我的做法是使用

df1$value <- df2$value[match(df1$number, df2$number_a)]

df1$value <- df2$value[match(df1$number, df2$number_b)]

分别为 df1 产生

number  value
1 NA
2 NA
3 3
4 NA
5 1

number  value
1 5
2 4
3 NA
4 2
5 NA

但是,我似乎无法使用这种方法填写 df1 中的所有“值”列。如何将“number”与“number_a”和“number_b”一举匹配。我试过了

df1$value <- df2$value[match(df1$number, df2$number_a:number_b)]

但这没有用。

谢谢!

最佳答案

更简单的解决方案:

df2$number <- ifelse(is.na(df2$number_a), df2$number_b, df2$number_a)

如果您不熟悉 ifelse,它可以使用以下形式的向量:

ifelse(Condition, ValueIfTrue, ValueIfFalse)

关于r - 如何匹配 1 列到 2 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com