gpt4 book ai didi

r - 如果列中的值不同,则绑定(bind)两个表的行

转载 作者:行者123 更新时间:2023-12-03 16:58:34 26 4
gpt4 key购买 nike

我有两个数据框:

Type   value 
1 Error: unexpected
2 Warning message
3 invalid factor

和:

Type      value 
10 In `[<-.factor`(`*tmp*`, iseq, value = "v1")
34 Warning message
3 nvalid factor level

如您所见,df2 中的第 2 行与 df1 中的第二行具有相同的值。所以期望的结果是:

Type   value 
1 Error: unexpected
2 Warning message
3 invalid factor
10 In `[<-.factor`(`*tmp*`, iseq, value = "v1")
3 invalid factor level

我怎么能这样。我知道函数 bind_row(),但如何在该条件下使用它?

最佳答案

一个选项是在使列名相同后将数据集与 bind_rows 绑定(bind),即第二个数据集中的类型更改为 ID,然后我们根据 distinct 行“值”列

library(dplyr)
df2 %>%
rename(ID = Type) %>%
bind_rows(df1, .) %>%
distinct(value, .keep_all = TRUE)

-输出

#  ID                                        value
#1 1 Error: unexpected
#2 2 Warning message
#3 3 invalid factor
#4 10 In `[<-.factor`(`*tmp*`, iseq, value = "v1")
#5 3 invalid factor level

数据

df1 <- structure(list(ID = 1:3, value = c("Error: unexpected", "Warning message", 
"invalid factor")), class = "data.frame", row.names = c(NA, -3L
))

df2 <- structure(list(Type = c(10L, 34L, 3L),
value = c("In `[<-.factor`(`*tmp*`, iseq, value = \"v1\")",
"Warning message", "invalid factor level")), class = "data.frame",
row.names = c(NA,
-3L))

关于r - 如果列中的值不同,则绑定(bind)两个表的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64733061/

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