使用;ifelse“;和/或;联合;在R中将3个变量的数据合并为一个变量
我的目标是将目前在三个变量中呈现的信息合并为一个变量,以创建一个“整洁”的数据集 数据框架中有三个变量指示一个物种的饮食类型:肉食动物、草食动物和杂食动物。数据表示为“是”或“NA”,其中“是”用于表示饮食类型,而“NA”用于表示该物种不属于的两种类型。我希望使用使用;ifelse“;和/或;联合;在R中将3个变量的数据合并为一个变量,r,tidyr,R,Tidyr,我的目标是将目前在三个变量中呈现的信息合并为一个变量,以创建一个“整洁”的数据集 数据框架中有三个变量指示一个物种的饮食类型:肉食动物、草食动物和杂食动物。数据表示为“是”或“NA”,其中“是”用于表示饮食类型,而“NA”用于表示该物种不属于的两种类型。我希望使用ifelse函数创建一个新的变量“diet type”,该变量本质上是数字(0,1,2),或者是一个字符向量“Carnivore”,“Herbivore”,“Omnivore”,但在尝试运行代码时会继续出错 动物多样性\u原始%>% 突
ifelse
函数创建一个新的变量“diet type”,该变量本质上是数字(0,1,2),或者是一个字符向量“Carnivore”,“Herbivore”,“Omnivore”,但在尝试运行代码时会继续出错
动物多样性\u原始%>%
突变(动物多样性、生食、饮食=ifelse(食肉动物=YES,食草动物=NA,1),
如果其他情况(食肉动物==“NA”和食草动物==“是”,“2”),
ifelse(食肉动物==“是”和杂食动物==“不”、“3”))
错误是:
ifelse中出错(动物多样性原始$Carnivore==“是”&动物多样性原始$Herbivore==:
缺少参数“否”,没有默认值
感谢您的关注!问题是嵌套的
ifelse
结束括号应该在末尾
animal_diversity_raw %>%
mutate(diet= ifelse(Carnivore== "YES" & Herbivore== "NA", "1",
ifelse(Carnivore== "NA" & Herbivore== "YES", "2",
ifelse(Carnivore== "YES" & Omnivore== "NA", "3"))))
注意:这里,我们假设缺少的值为字符串
“NA”
。通常,它是不带引号的,可以用is.na检查。谢谢你的帮助!我已经将代码改为:animal_diversity_new@sehoskins,正如我在帖子中提到的。如果你有不带引号的na
,如果你可以通过编辑在帖子中展示一个小的可复制的例子,你需要is.na
(最好使用dput(head(animal_divierity_raw))
,我可以得到结构