我遇到了 data.frame 的问题。为了使它非常简单,我从
test<-data.frame(char=character(10), numr=numeric(10))
test$char[1]<-"ery"
结果是
Warning message:In `[<-.factor`(`*tmp*`, 1, value = c(NA, 1L, 1L, 1L, 1L, 1L, 1L, :
invalid factor level, NAs generated
如果我这样做,mode(test$char)
我会得到[1] "numeric"
如果我这样做,mode(test$numr)
我会得到[1] "character"
我也可以做到test$numr[1]<-"fjfj"
没有错误,并且数据存储在那个特定的地方。
如果我不使用设置 data.frame 而不是将character(10)
所有内容都设置为数字,那么就像前面的示例一样,它将允许我将数字更改为字符,只需将字符串存储到列中的某个内容,即使它以前被定义为数字. 为什么 R 对待字符的方式与我在示例中所期望的不同?