数据框取多列时,返回的还是数据框。
取一列时,默认退化为一个向量:
> class(iris)
[1] "data.frame"
> t1=iris[, 1:2]
> class(t1)
[1] "data.frame"
> t2=iris[,1]
> class(t2)
[1] "numeric"
> head(t2, n=2)
[1] 5.1 4.9
取一列子集,还想保持数据框结构,怎么办?
答案:在[]中添加第三个参数 drop=F
> t3=iris[,1, drop=F]
> class(t3)
[1] "data.frame"
> head(t3, n=2)
Sepal.Length
1 5.1
2 4.9
这个在Seurat4源码中经常见到。
Tips: 为了稳健(robust),函数中对数据框取列子集,都建议一律加上 drop=F 参数。