簡體   English   中英

從 R 中的 4 列中選擇一個值

[英]Choose a value from 4 columns in R

我想檢查數據框中的 4 列,並從 col1、col2、col3 或 col4 中獲取值。 下面的 for 循環和 if/else 有效。 但是,我想問一下如何以更有效的方式在 R 中做到這一點?

for (j in 1:nrow(df)){

  
  if(is.na(df[j,"Name.A"])){
  
      if(is.na(df[j,"Name.B"])){
    
          if(is.na(df[j,"Name.C"])){
        
              df[j,"Name"] = df[j,"Name.D"]
          
          } else{
            
            df[j,"Name"] = df[j,"Name.C"]
            }  
      
      }else{
        
        df[j,"Name"] = df[j,"Name.B"]
        
        }
   
   }else {
     
     df[j,"Name"] = df[j,"Name.A"]
 }
}

使用coalesc通過dplyr獲取第一個非 NA 值。

library(dplyr)
df <- data.frame(
  Name.A = c(NA, NA, NA, 1),
  Name.B = c(NA, NA, 2, 2),
  Name.C = c(NA, 3, 3, 3),
  Name.D = c(4, 4, 4, 4))


df %>%  mutate(name = coalesce(Name.A, Name.B, Name.C, Name.D))

  Name.A Name.B Name.C Name.D name
1     NA     NA     NA      4    4
2     NA     NA      3      4    3
3     NA      2      3      4    2
4      1      2      3      4    1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM