【发布时间】:2021-10-04 19:40:09
【问题描述】:
我想在此 (Get the latest updated value based on other columns) 之后提出另一个问题,因为我的问题可能不清楚。
最初,我有 2 个数据框,其中一个在 name2 列中包含 NA 值,另一个在 name1 列中包含 NA 值。然后,我在这里使用bind_rows 获取一个大数据框作为示例。 name3 列是name1 和name2 的组合。
name1 name2 name3
Acer laurinum NA Acer laurinum
Acmella paniculata NA Acmella paniculata
Aglaia lawii NA Aglaia lawii
............ NA ...................
NA Acer laurinum Hassk. Acer laurinum Hassk.
NA Aglaia lawii (Wight) Aglaia lawii (Wight)
NA .................... ....................
如您所见,name3 列中的几个名称缺少作者部分。这就是为什么我想根据name2 或name3 列更新这些名称。
使用tidyverse对我有什么建议吗?
代码示例
df <- data.frame(
name1 = c("Acer laurinum", "Acmella paniculata", "Aglaia lawii", NA, NA),
name2 = c(NA, NA, NA, "Acer laurinum Hassk.", "Aglaia lawii (Wight)"),
name3 = c("Acer laurinum", "Acmella paniculata", "Aglaia lawii", "Acer laurinum Hassk.", "Aglaia lawii (Wight)"))
我想要的输出
name1 name2 name3
Acer laurinum NA Acer laurinum Hassk.
Acmella paniculata NA Acmella paniculata
Aglaia lawii NA Aglaia lawii (Wight)
NA Acer laurinum Hassk. Acer laurinum Hassk.
NA Aglaia lawii (Wight) Aglaia lawii (Wight)
【问题讨论】:
-
好的,我想我对您的预期感到困惑。我以为
name3不存在于数据中 -
哦,我明白了。我之前确实创建了一个好名字的向量,然后我使用
lapply来绑定作者姓名,就像这篇文章一样。 (stackoverflow.com/questions/68637196/…)。但是,在某些情况下,当我匹配出错时,我认为这可能不是一个好的选择