model.frame.default变量长度的错误因变量名称列表而异

时间:2019-09-20 19:29:24

标签: r list for-loop aggregate

我正在尝试使用合计函数显示特定子组分数的平均值。我有很多描述性变量,我想将两个变量组合起来并找到每个组合组的平均值。所有变量都是类别变量,一些变量具有两个条目,而另一些变量具有多个。我不断收到错误消息,虽然我在网上找到了一些线索,但是我不确定该怎么做。

variable_list <- c("gender","race","age", "disability", "job_level", "full_time_or_part_time", location", "office", "sex_orient")

for(i in 1:9){
  for(j in 1:9){
   holder <- aggregate(score ~ variable_list[i] + variable_list[j], survey, FUN=function(x) c(count=length(x), mean=mean(x) ))
   survey_combination <- bind_rows(survey_combination,holder)
  }

}

我希望这段代码产生一个数据框,但是却给了我标题错误。

1 个答案:

答案 0 :(得分:0)

在开始for循环之前,您需要设置/初始化survey_combination。或执行以下操作:

firstTime = TRUE

variable_list <- c("gender","race","age", "disability", "job_level", "full_time_or_part_time", "location", "office", "sex_orient")

for(i in 1:9){
  for(j in 1:9){
    holder <- aggregate(score ~ variable_list[i] + variable_list[j], survey, FUN=function(x) c(count=length(x), mean=mean(x) ))

    if (firstTime) {
       survey_combination <- holder
       firstTime = FALSE
    } else {
       survey_combination <- bind_rows(survey_combination,holder)
    }

  }
}