簡體   English   中英

如何在R中合並兩列但保留NA?

[英]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.

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