更新我找到了解决问题的方法,以下代码给出了正确答案
animaldata$myfac <- with(animaldata, recode(Age.Intake, "lo:0=1; 1:hi=2; else=2"))
animaldata$myfac = factor(animaldata$myfac)
levels(animaldata$myfac) <- list(young = 1, adult = 2)
table(animaldata$myfac)
young adult
191 282
此问题与使用剪切
的其他问题不重复我正在尝试将数值变量转换为基于该变量的条件的因子。但我无法这样做。
## load the librray
library(SDSFoundations)
## load the datset
animaldata <- AnimalData
# Get age of each gender
table(animaldata$Sex , animaldata$Age.Intake)
运行以上命令会得到以下结果
0 1 2 3 4 5 6 7 8 9 10 11 12 13 15 17
Female 84 30 31 17 11 18 3 3 8 5 2 1 2 3 2 0
Male 107 33 32 21 11 14 10 10 3 3 3 2 1 2 0 1
我想使用以下条件创建一个因子变量年龄 2级
If animaldata$Age.Intake < 1 then young
else adult
我尝试使用cut
,但得到了正确的结果
table(cut(animaldata$Age.Intake,breaks = c(0, 1, Inf), labels = c("young", "adult")))
young adult
63 219
更新2 我尝试include.lowest = TRUE
,但我的结果仍然不正确。
table(cut(animaldata$Age.Intake,breaks = c(0, 1, Inf), labels = c("young", "adult"),include.lowest = TRUE))
young =254 and adult= 219