簡體   English   中英

將 R 中的列與 NA 值合並

[英]Merge Columns In R with NA values

我希望合並數據框中的列並生成一個新列來識別新值

目前

  Sample              Temp1  Temp2  Temp3    
    1      A          121.3  NA     NA
    2      B           NA    35.1   NA
    3      C           NA    NA     39.9  

期望輸出

  Sample              Temp  Reading   
    1      A          121.3 Temp 1
    2      B          35.1  Temp 2
    3      C          39.9  Temp 3

您可以使用pivot_longertidyr並指定要刪除 NA。

library(tidyr)
pivot_longer(df, -Sample, names_to = "Temp", values_to = "Reading", values_drop_na = TRUE)

#> # A tibble: 3 x 3
#>   Sample Temp  Reading
#>   <chr>  <chr>   <dbl>
#> 1 A      Temp1   121. 
#> 2 B      Temp2    35.1
#> 3 C      Temp3    39.9

df定義為

df <- read.table(text = " Sample              Temp1  Temp2  Temp3    
    1      A          121.3  NA     NA
    2      B           NA    35.1   NA
    3      C           NA    NA     39.9  ", header = TRUE)

一種選擇

tmp=grep("Temp",colnames(df))

df["Temp"]=rowSums(df[tmp],na.rm=T)
df["Reading"]=paste0("Temp ",which(!is.na(df[tmp]),arr.ind=T)[,2])

  Sample Temp1 Temp2 Temp3  Temp Reading
1      A 121.3    NA    NA 121.3  Temp 1
2      B    NA  35.1    NA  35.1  Temp 2
3      C    NA    NA  39.9  39.9  Temp 3

暫無
暫無

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

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