为数据框分配列表 - 获取错误:无效因子级别,生成NA

时间:2016-10-28 20:03:08

标签: r list dataframe error-handling

我在循环中创建一个数字和字符列表,并将该列表分配给数据框。我已经预先定义了每个变量,而我没有使用因子(至少我觉得这样)。基本上,我想用我提到的变量创建一个数据框。这是我正在尝试使用的代码:

NumToShow    = numeric(0)
MatToShow    = character()
flag         = numeric(0)

datalist = data.frame(NumToShow,MatToShow,flag)

for (i in 1:3){
  NumToShow = i
  MatToShow = "aaa"
  flag = i^2

  Row_i = list(NumToShow,MatToShow,flag)
  # Combining all the data
  datalist[i,] = Row_i
}

我收到错误:

In `[<-.factor`(`*tmp*`, iseq, value = "aaa") :
  invalid factor level, NA generated

我不确定为什么我会得到它。任何帮助将不胜感激。如果这是愚蠢的话,我道歉。谢谢:))

1 个答案:

答案 0 :(得分:0)

检查?data.frame()

data.frame(..., row.names = NULL, check.rows = FALSE,
           check.names = TRUE, fix.empty.names = TRUE,
           stringsAsFactors = default.stringsAsFactors())

然后输入:

default.stringsAsFactors()
# [1] TRUE

您需要明确设置stringsAsFactors = FALSE,以便data.frame()不将字符视为因素。