我尝试使用以下代码来完成这个简单,非常基本的任务:
dd = data.frame("a","b")
dd
# X.a. X.b.
# 1 a b
dd2 = data.frame("","")
dd2
# X.. X...1
# 1
names(dd)[1]
# [1] "X.a."
dd2[1,1] <- names(dd)[1]
# Warning message:
# In `[<-.factor`(`*tmp*`, iseq, value = "X.a.") :
# invalid factor level, NAs generated
dd2
# X.. X...1
# 1 <NA>
为什么只在dd2的[1,1]处输入“NA
”?如何更正此错误?
答案 0 :(得分:2)
当您将character
值传递给data.frame时,它会转换为factor
,只能采用有限的值。
使用它来避免这种行为
dd2 = data.frame("","", stringsAsFactors=FALSE)
您应该可以将其更改为您想要的任何内容。