【发布时间】:2021-09-28 18:23:54
【问题描述】:
我有一个这样的数据框
df <- data.frame(name1 = c("a" , "a", "a", "a", "c", "c", "c", "c"),
name2 = c(NA,"a","a",NA, NA, "c", "c", NA),
name3 = c(NA, "b", "b", NA, NA, "d","d",NA))
然后,我确实根据一些条件做了一个新的专栏
library(tidyverse)
df %>% mutate(name4 = ifelse(!is.na(name3), name3, name1))
name1 name2 name3 name4
1 a <NA> <NA> a
2 a a b b
3 a a b b
4 a <NA> <NA> a
5 c <NA> <NA> c
6 c c d d
7 c c d d
8 c <NA> <NA> c
我想分别在name4 中将a、c 替换为b、d,而不调用字符,即a、b。 (制作另一列也是一个不错的选择,对吧?)
对此有何建议?
期望的输出
name1 name2 name3 name4
1 a <NA> <NA> b
2 a a b b
3 a a b b
4 a <NA> <NA> b
5 c <NA> <NA> d
6 c c d d
7 c c d d
8 c <NA> <NA> d
【问题讨论】:
-
我不理解,您能否澄清一下,为什么 a 在 name4 列中变为 b?
-
假设 name2 列中的 a 将更改为 name3 列中的 b。然后,name4 列就像包含旧名称和新名称的最后一列
-
或者name3列中的字符作为我的第一优先使用,然后是name1列,但现在我想将标准旧名称
a改为新名称b。清楚吗? -
我认为您正在寻找合并,请参阅stackoverflow.com/q/19253820/680068
-
@zx8754 不,先生,因为我的真实数据框很长,name1 列中有不同的字符,我想保留它。 Coalesce 将从我的数据框中删除这些名称。