R-条件下替换值



我正在尝试替换此表中所示的值。

  • 如果ANA,并且BCA设置为Unknown
  • 如果ANA,并且BC具有值,请将A设置为Missing Value

     A         B     C   
 1  NA        NA    NA  
 2  NA       200    NA  

              A        B       C       
1  NotImportant       NA      NA   
2       Unknown      200      NA    

我尝试了某种,

if(is.na(ColumnA)) ColumnB[is.na(ColumnB)] <= "Not Important"  
if(is.na(ColumnA)) ColumnB[!is.na(ColumnB)] <= "Unknown"

但我没有结果。

有人可以帮我吗?我希望我很好地描述了我的问题。

df$A <- ifelse(!is.na(df$A), 
                      df$A, 
                      ifelse(is.na(df$B) & is.na(df$C), 
                             "Not Important", 
                             "Missing Value"))
# A   B  C
# 1 Not Important  NA NA
# 2 Missing Value 200 NA

您可以在 df是您的数据的地方尝试一下:

df[rowSums(is.na(df))==3,]$A <- "NotImportant"
df[with(df, is.na(A) & (!is.na(B) | !is.na(C))),]$A <- "Unknown"
#             A   B  C
#1 NotImportant  NA NA
#2      Unknown 200 NA

这是使用dplyr中的case_when

df <- structure(list(A = c(NA, NA), B = c(NA, 200L), C = c(NA, NA)), .Names = c("A",
"B", "C"), class = "data.frame", row.names = c("1", "2"))
library(dplyr)
df%>%
mutate(A=case_when(
 is.na(.$A)&is.na(.$B)&is.na(.$C)   ~ "Not Important",
 is.na(.$A)&(is.na(.$B)|is.na(.$C)) ~ "Unknown")
 )
              A   B  C
1 Not Important  NA NA
2       Unknown 200 NA

最新更新