R 如何从两列(不包括部分列)创建新列?

R 如何从两列(不包括部分列)创建新列?,r,dplyr,statistics,tidyr,R,Dplyr,Statistics,Tidyr,很抱歉标题很模糊,但我想知道如何从图像中显示的两列创建一个新列,这样“NR”将从新列中排除 例如,新列的第一行是“无收入”,第七行是“5001到10k之间”。“NR”将不出现在新列中 我非常感谢你的帮助。谢谢。以后,如果您使用dput而不是屏幕截图提供示例数据,那就太好了 假设“NR”总是正好出现在一列中,您可以这样做来创建一个名为new\u col的列: df$new_col <- ifelse(df$new2 != "NR", df$new2, df$new10)

很抱歉标题很模糊,但我想知道如何从图像中显示的两列创建一个新列,这样“NR”将从新列中排除

例如,新列的第一行是“无收入”,第七行是“5001到10k之间”。“NR”将不出现在新列中


我非常感谢你的帮助。谢谢。

以后,如果您使用
dput
而不是屏幕截图提供示例数据,那就太好了

假设“NR”总是正好出现在一列中,您可以这样做来创建一个名为
new\u col
的列:

df$new_col <- ifelse(df$new2 != "NR", df$new2, df$new10)

df$new\u col我将用空字符串替换NR,然后将所有列粘贴在一起:

df %>% mutate(across(c(new2, new10), ~if_else(.x=="NR", "", .x))) %>%
   unite(Column, c(new2, new10), sep="")

将df替换为data.frame的名称。

在将“NR”更改为
NA之后,我们可以使用
coalesce

library(dplyr)
df1 %>%
    mutate(across(c(new2, new10), na_if, "NR")) %>%
    transmute(new_col = coalesce(new2, new10))

如果两列都是“NR”,结果应该是什么?如果这两个都不是NR呢?实际上我还没有考虑过。但是,在我的例子中,没有两列同时包含“NR”。第二个问题的答案也是一样,我已经确保我们不会遇到这种情况。非常感谢。