case_when in r如果满足条件,则保留原始列的值

问题描述 投票:-1回答:1

我有一列具有NA值的列,我想创建一个新列,该列从另一列获取该值,但仅当它不是NA时。

例如,我有一个名为PrimaryDiagCat的列,其中包含一些NAs,但其余的是诊断类别。我想执行一个case_when,就像这样:

.... mutate(NewDX = case_when(PrimaryDiagCat != "NA" ~ PrimaryDiagCat, .....)

这给我一个错误,因为在~之后应该是一个因素,而不是列名。有什么建议吗?

谢谢!

r case-when
1个回答
0
投票

与转换功能一起使用ifelse。

df <- data.frame(x=c(1,2, NA), y=c(3,4,5))
   x y
1  1 3
2  2 4
3 NA 5

df<- transform(df, z= ifelse( is.na(x) , y, x))
   x y z
1  1 3 1
2  2 4 2
3 NA 5 5
© www.soinside.com 2019 - 2024. All rights reserved.