R

时间:2018-03-08 10:01:28

标签: r dataframe

好吧,我对R中的数据帧和xtses的不同行为感到困惑,我希望有人可以向我解释。

df = as.data.frame(x = c(1,2),row.names = c("2012-12-12","2012-12-13"))
xts = as.xts(x=c(1,2),order.by = as.POSIXct(c("2012-12-12","2012-12-13")))

我这里有两个不同的数据集。当你打印它们时,它们看起来几乎相似。当我想要xts的第一行时,xts[1,]返回带有colnames和索引的行。但是当你执行df[1,]时,它只返回一个向量。

有没有办法返回数据帧的第一行,完成rownames和colname?我知道我可以通过as.data.frame(as.xts(df)[1,])来破解它,但是有更优雅的解决方案吗?

1 个答案:

答案 0 :(得分:2)

这是一个非常特殊的情况,其中数据帧上的行的子集操作只有一个单元格。

在这种情况下,您需要指定drop = FALSE,此处

df[1, , drop = FALSE]

我建议您在从头开始创建数据框时,使用data.frame()函数代替as.data.frame()