我在循环中创建一个数字和字符列表,并将该列表分配给数据框。我已经预先定义了每个变量,而我没有使用因子(至少我觉得这样)。基本上,我想用我提到的变量创建一个数据框。这是我正在尝试使用的代码:
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
我不确定为什么我会得到它。任何帮助将不胜感激。如果这是愚蠢的话,我道歉。谢谢:))
答案 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()
不将字符视为因素。