R 避免(as)数据。从zoo对象转换时,帧将数据更改为因子
如前所述,如果您有一个带有数字列的R 避免(as)数据。从zoo对象转换时,帧将数据更改为因子,r,dataframe,zoo,R,Dataframe,Zoo,如前所述,如果您有一个带有数字列的data.frame,则转换没有问题 以下所有操作将字符串转换为因子: str(as.data.frame(dtfz)) str(as.data.frame(dtfz,stringsAsFactors = FALSE)) str(data.frame(dtfz)) str(data.frame(dtfz,stringsAsFactors = FALSE)) str(as.data.frame(dtfz, check.names=FALSE, row.names=
data.frame
,则转换没有问题
以下所有操作将字符串转换为因子:
str(as.data.frame(dtfz))
str(as.data.frame(dtfz,stringsAsFactors = FALSE))
str(data.frame(dtfz))
str(data.frame(dtfz,stringsAsFactors = FALSE))
str(as.data.frame(dtfz, check.names=FALSE, row.names=NULL,stringsAsFactors = FALSE))
#'data.frame': 5 obs. of 2 variables:
# $ X1: Factor w/ 1 level "d": 1 1 1 1 1
# $ X2: Factor w/ 1 level "d": 1 1 1 1 1
当data.frame有许多文本列时,如何避免这种行为?我根据@thelatemail的评论找到了解决方案。它适用于zoo的实际版本(2017年9月)。正如G. Grothendieck评论的那样,未来动物园的版本将考虑<代码> StutsSaseFalths:Falue参数。
str(base:::as.data.frame(coredata(dtfz),stringsAsFactors = FALSE))
#'data.frame': 5 obs. of 2 variables:
# $ X1: chr "d" "d" "d" "d" ...
# $ X2: chr "d" "d" "d" "d" ...
zoo:::as.data.frame.zoo
似乎不尊重as.data.frame
的其他参数-第一行是y Good point@thelatemail!然后这样做:str(base::as.data.frame(coredata(dtfz),stringsAsFactors=FALSE))
回答你自己的问题-收获甜蜜的声誉点;-)Achim现在已经在zoo 1.8.1(开发版本)中修复了这个问题,因此stringsAsFactors=
在as.data.frame.zoo
中不会被忽略。
str(as.data.frame(dtfz))
str(as.data.frame(dtfz,stringsAsFactors = FALSE))
str(data.frame(dtfz))
str(data.frame(dtfz,stringsAsFactors = FALSE))
str(as.data.frame(dtfz, check.names=FALSE, row.names=NULL,stringsAsFactors = FALSE))
#'data.frame': 5 obs. of 2 variables:
# $ X1: Factor w/ 1 level "d": 1 1 1 1 1
# $ X2: Factor w/ 1 level "d": 1 1 1 1 1
str(base:::as.data.frame(coredata(dtfz),stringsAsFactors = FALSE))
#'data.frame': 5 obs. of 2 variables:
# $ X1: chr "d" "d" "d" "d" ...
# $ X2: chr "d" "d" "d" "d" ...