我使用“ifelse”函数编写了下面的代码, 只返回“worker”到$ age_group,我想根据变量“age”创建新列,但仅限。
我不知道为什么......你能帮我调试我的代码吗?
var inputs, index; inputs = document.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
// deal with inputs[index] element.}
答案 0 :(得分:2)
我们可以使用cut
或findInterval
:
with(a, cut(age, breaks=c(17, 20, 24, Inf),
labels=c('mid', 'high', 'univ', 'worker'))
答案 1 :(得分:1)
您的代码不必要地复杂,我怀疑它可能也很慢。请记住,ifelse
是矢量化的。所以你不需要for
循环。然而,主要的问题是后来对ifelse
的调用会覆盖之前的调用,因为你在里面进行了赋值,你需要将赋值放在ifelse
调用之外。试试这个:
a$age_group <- ifelse(a$age < 17, "mid",
ifelse(a$age < 20, "high",
ifelse(a$age < 24, "univ", "worker")))