R 具有混合数据类型的数据帧
我已经使用R有一段时间了,但我仍然在与因子和数据帧作斗争。 这是我的问题 我正在尝试预分配一个由不同类型的几列组成的数据帧,如下所示:R 具有混合数据类型的数据帧,r,type-conversion,dataframe,R,Type Conversion,Dataframe,我已经使用R有一段时间了,但我仍然在与因子和数据帧作斗争。 这是我的问题 我正在尝试预分配一个由不同类型的几列组成的数据帧,如下所示: cb <- data.frame(S=character(1000), I=numeric(1000), A=as.Date(rep(0,1000), origin = "1900-01-01"), SD=as.POSIXct(rep(0,1000), origin = "1900-01-01 00:00:00"), CC=numeric(1000), s
cb <- data.frame(S=character(1000), I=numeric(1000), A=as.Date(rep(0,1000), origin = "1900-01-01"), SD=as.POSIXct(rep(0,1000), origin = "1900-01-01 00:00:00"), CC=numeric(1000), stringsAsFactors=FALSE)
当我指定数据框中的第一个项目时,CC和I变成字符:
cb[1, ] <- c("ABCD", 4, "2005-12-12", "2008-04-03 20:30", 3)
这就使得它对我来说很难使用了
当我在data.frame定义中省略stringsAsFactors=FALSE时,我(显然)会收到不同的错误消息(已将warn设置为2):
“[中的
错误您不能在向量中混合类型,因此您的向量被强制为字符
R> c("ABCD", 4, "2005-12-12", "2008-04-03 20:30", 3)
[1] "ABCD" "4"
[3] "2005-12-12" "2008-04-03 20:30"
[5] "3"
[
'data.frame': 1000 obs. of 5 variables:
$ S : chr "ABCD" "" "" "" ...
$ I : chr "4" "0" "0" "0" ...
$ A : Date, format: "2005-12-12" "1900-01-01" "1900-01-01" "1900-01-01" ...
$ SD: POSIXct, format: "2008-04-03 20:30:00" "1900-01-01 00:00:00" "1900-01-01 00:00:00" "1900-01-01 00:00:00" ...
$ CC: chr "3" "0" "0" "0" ...
Error in `[<-.factor`(`*tmp*`, iseq, value = "ABCD") :
(converted from warning) invalid factor level, NAs generated
R> c("ABCD", 4, "2005-12-12", "2008-04-03 20:30", 3)
[1] "ABCD" "4"
[3] "2005-12-12" "2008-04-03 20:30"
[5] "3"
cb[1, ] <- list("ABCD", 4, "2005-12-12", "2008-04-03 20:30", 3)
cb[1, ] <- data.frame("ABCD", 4, "2005-12-12", "2008-04-03 20:30", 3,
stringsAsFactors=FALSE)