【发布时间】:2019-09-06 14:59:18
【问题描述】:
我正在尝试编写一个函数(这方面非常新),它使用 ifelse 来计算一个新变量,然后给这个新变量一个标签并给出级别标签。然后通过运行频率和交叉表检查它是否有效。如果我在硬编码的步骤中执行它,我可以让它工作,但我正在努力让它作为一个函数工作。
这就是我希望该函数执行的操作并且它有效:
df$new_variable<-ifelse(df$other_variable==0,1,0)
label(df$new_variable) <- "Not applicable"
levels(df$Snew_variable) <- list(No=0, Yes=1)
frq(df, new_variable) #see that it created the new variable
cro(df$other_variable, df$new variable) #see that it was created
correctly
这就是我一直在努力的工作:
compute_new_var<-function(df, x) {
df$new_variable<-ifelse(x==0,1,0)
label (df$new_variable) <- "Not applicable"
levels(df$new_variable) <-list(No=0, Yes=1)
frq(df, new_variable)
cro(df$new_variable, x)
}
compute_new_var(df_name, other_variable_name)
它正在做几件事。它不喜欢“标签”,所以我一直把标签和水平线放在外面。然后它给了我这个找不到对象“new_variable”的错误。我不确定我是否在参数中遗漏了一些东西,或者它是否没有创建 new_variable 或者它是否正在创建它但没有将它存储在我的 df 中,或者我是否只是想在这里塞进太多东西。有什么想法吗?
我希望它创建新变量,为变量分配标签,为值分配标签,并打印频率和交叉表。
【问题讨论】:
标签: r function if-statement