[英]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_longer
的tidyr
並指定要刪除 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.