根据现有变量的范围编码新变量

时间:2015-12-11 07:54:46

标签: r debugging variables if-statement

我使用“ifelse”函数编写了下面的代码, 只返回“worker”到$ age_group,我想根据变量“age”创建新列,但仅限。

我不知道为什么......你能帮我调试我的代码吗?

var inputs, index; inputs = document.getElementsByTagName('input'); 
for (index = 0; index < inputs.length; ++index) {

// deal with inputs[index] element.}

2 个答案:

答案 0 :(得分:2)

我们可以使用cutfindInterval

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")))