【发布时间】:2019-12-03 02:33:56
【问题描述】:
所以我有一个数据框,其中包含多个不同物种的出现和一个“new_name”空列,我想用 mutate/ifelse 填充。 基本上我希望根据这些条件填写 new_name: 如果状态是 unaccepter,我希望 new_name 是“valid_name”的值,如果状态被接受或 NA,我希望 new_name 采用“species”的值。 这是我的数据框结构的示例: '''
数据框示例
species valid_name new_name status
1. Tilapia guineensis | NA | NA | NA
2. Tilapia zillii | Hippocampus trimaculatus | NA | unaccepted
3. Fundulus rubrifrons | Hippocampus trimaculatus | NA | unaccepted
4. Eutrigla gurnardus | Bougainvillia supercili | NA | accepted
5. Sprattus sprattus | NA | NA | NA
6. Gadus morhua | Aglantha digitale | NA | accepted
´´´
到目前为止,我尝试了以下方法:
df<-df%>%
mutate(new_name = ifelse(status=="unaccepted",valid_name,ifelse(status=="accepted" | is.na(status),species,NA)))
因此,此代码仅适用于没有 NA 的“状态”值。否则它只会忽略 NA 并且什么也不做。所以数据框变成了这样:
species valid_name new_name status
1. Tilapia guineensis | NA | Tilapia guineensis | NA
2. Tilapia zillii | Hippocampus trimaculatus | Hippocampus trimaculatus | unaccepted
3. Fundulus rubrifrons | Hippocampus trimaculatus | Hippocampus trimaculatus | unaccepted
4. Eutrigla gurnardus | Bougainvillia supercili | Eutrigla gurnardus | accepted
5. Sprattus sprattus | NA | Sprattus sprattus | NA
6. Gadus morhua | Aglantha digitale | Gadus morhua | accepted
提前感谢您的任何回答
【问题讨论】:
标签: r