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" ...