选择数据帧的一列将返回一个因子,而不是另一个数据帧

Hug*_*ans 1 r dataframe r-factor

我有下面的代码,如果m == 2则cd仍然是数据帧,而名称(cd)来自原始数据帧d.但是,如果m == 3,则数据帧中只有一列仍然存在而cd变为一个因子而我丢失了名称......

samplesize <-100
g1 <- gl(2,samplesize/2,labels=c("V","M"))
g2 <- gl(3,samplesize/3,labels=c("V","M","U"))
m <- 2
d <- data.frame(g1,g2)
l <-  sapply(d,nlevels)
cd <- d[,l <= m]
names(cd)
Run Code Online (Sandbox Code Playgroud)

即使过滤器只留下一列,我还想保留d的名称?

Pie*_*nte 5

使用drop=FALSE以避免强迫来的最低尺寸.

cd <- d[,l <= m, drop=FALSE]
names(cd)
[1] "g1"
Run Code Online (Sandbox Code Playgroud)