[英]How to combine two columns in R but keep NA?
我有一個包含以下列的數據框:
Genus Species
1 Somniosus microcephalus
2 Somniosus NA
3 NA microcephalus
4 Somniosus microcephalus
5 NA NA
我希望得到一個看起來像這樣的:
Genus Species GS
1 Somniosus microcephalus Somniosus microcephalus
2 Somniosus NA NA
3 NA microcephalus NA
4 Somniosus microcephalus Somniosus microcephalus
5 NA NA NA
即我想將“屬”和“物種”列中的信息合並到一個新列中。 但是,如果“屬”或“種類”列中存在NA,則我希望結果值是一個NA值。 雖然我了解解決問題的邏輯,但我擔心我對R的經驗不足,無法提出正確的語法。
像這樣使用ifelse
:
> transform(df1, GS=ifelse(is.na(Genus)| is.na(Species), NA, paste(Genus, Species)))
Genus Species GS
1 Somniosus microcephalus Somniosus microcephalus
2 Somniosus <NA> <NA>
3 <NA> microcephalus <NA>
4 Somniosus microcephalus Somniosus microcephalus
5 <NA> <NA> <NA>
使用complete.cases
通過@thelatemail的建議
transform(df1, GS=ifelse(complete.cases(df1), paste(Genus, Species), NA))
您可以像這樣直接使用粘貼功能:
df$GS <- ifelse(is.na(df$Genus) | is.na(df$Species), NA, paste(df$Genus, df$Species, sep = " "))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.