我在R中得到了两个数据帧。我想比较两个数据框架并更改单元格数据。
data1 |
---|
a |
b |
我假设您使用两个数据帧:
df1 <- data.frame(col1 = c("a", "b"))
df1
#> col1
#> 1 a
#> 2 b
df2 <- data.frame(data11 = c("c", "a"), data21 = c(1, 2))
df2
#> data11 data21
#> 1 c 1
#> 2 a 2
如果使用ifelse()
,则索引可能不正确(我们希望此处的结果为"2" "b"
(:
ifelse(df1$col1 %in% df2$data11, df2$data21, df1$col1)
#> [1] "1" "b"
因此,您可以使用merge()
来代替:
df3 <- merge(df1, df2, by.x = "col1", by.y = "data11", all.x = TRUE)
df3$data21 <- ifelse(is.na(df3$data21), df3$col1, df3$data21)
df3
#> col1 data21
#> 1 a 2
#> 2 b b