我正在尝试根据另一列的值创建一个新的值列。如果 iucnStatus 列中的值为“LC”或“NT”,我希望新列(受威胁)中的值为“Not_Threatened”。如果 iucnStatus 中的值为“VU”、“EN”、“CR”、“EW”或“EX”,我希望新列(受威胁)中的值为“受威胁”。我已经编写代码来创建新列了:
df<-read.csv('master2.csv')
df$threatened <-apply(df$iucnStatus, 1,function(x)
但我不确定将哪个函数传递给 function(x) 。也欢迎任何其他不使用 apply 功能的解决方案。
您可以使用ifelse
如果您只有两种状态。
df$Threatened <- ifelse(df$iucnStatus %in% c("LC","NT"),"Not_Threatened", "Threatened")
#Without `ifelse`
#df$Threatened <- c("Threatened", "Not_Threatened")[(df$iucnStatus %in% c("LC","NT")+ 1)]
如果您想要检查更多状态代码,您可以使用case_when
library(dplyr)
df %>%
mutate(Threatened = case_when(
Status %in% c("LC","NT") ~ "Not_Threatened",
Status %in% c("VU", "EN", "CR", "EW","EX") ~ "Threatened",
#More conditions
))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)