R:强制数据帧的子集保留为数据帧

时间:2013-11-10 11:43:48

标签: r dataframe

在R中,似乎如果我要用1列创建数据框的子集,它就会变成向量。

input <- structure(list(X2 = 0, X1 = 1L), .Names = c("X2", "X1"), 
                   row.names = c(NA, -1L), class = "data.frame")
input
#   X2 X1
# 1  0  1
input <- input[,input[1,]>=1]
input
# [1] 1
as.data.frame(input)
#   input
# 1     1

当我使用as.data.frame(input)时,我丢失了向量的列名。因为我不知道“X1”的名字,所以我不能做names(as.data.frame(input)) <- "X1"之类的事情。有没有办法强制R保持数据帧格式?

1 个答案:

答案 0 :(得分:4)

drop中使用[参数:

> input[,input[1,]>=1, drop=F]
  X1
1  1