在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保持数据帧格式?
答案 0 :(得分:4)
在drop
中使用[
参数:
> input[,input[1,]>=1, drop=F]
X1
1 1