gpt4 book ai didi

r - 仅当 R 中都包含字符串值而不是 NA 值时才连接两列

转载 作者:行者123 更新时间:2023-12-01 22:50:25 28 4
gpt4 key购买 nike

我用谷歌搜索并找到了适用于 Python 和 SQL 的解决方案,但没有找到适用于 R 编码的解决方案。

为了便于理解,我附上了一个名为 df1 的数据框示例。

Genus          Species       Genusspecie
Escherichia coli Escherichia coli
Campylobacter NA NA
Shigella sonnei Shigella sonnei

如果 df1 中存在 NA,则只存在于 Specie 的变量列中。

然后我希望如果 NA 存在于 Specie 中,则完整的物种名称(创建的新变量称为 Genusspecie)出现 NA。如果 Genus 和 Specie 都被告知,我希望获得完整的物种名称。

我尝试了粘贴命令,但随后我需要将包含 NA 的数据帧的字符串单元格转换为仅包含 NA 且不包含属信息的字符串单元格。


df1$Genusspecie <- paste(taxa2$Genus, taxa2$Species)

预先感谢您的帮助,

最佳答案

您可以使用ifelse。如果 SpeciesNA,则返回 NA,否则将两列粘贴在一起。

within(df1, GenusSpecies <- ifelse(is.na(Species), NA, paste(Genus, Species)))
#> Genus Species GenusSpecies
#> 1 Escherichia coli Escherichia coli
#> 2 Campylobacter <NA> <NA>
#> 3 Shigella sonnei Shigella sonnei

来自问题的可重现格式的数据

df1 <- data.frame(Genus   = c("Escherichia", "Campylobacter", "Shigella"), 
Species = c("coli", NA, "sonnei"))

关于r - 仅当 R 中都包含字符串值而不是 NA 值时才连接两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74465173/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com