r - 显示仅作为因子的列名
问题描述
有没有办法只提取作为因素的列名。例如,在 iris 数据集中,最后一列是一个因素,因此应该只提取 Species(列名而不是整列)
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> str(head(iris))
'data.frame': 6 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1
解决方案
我们可以用 :
names(iris)[sapply(iris, is.factor)]
#[1] "Species"
或使用Filter
:
names(Filter(is.factor, iris))
推荐阅读
- python - Python BCPY 将 CSV 导入 SQL Server:如何为引号内的逗号添加文本限定符
- c++ - 如何在单核、单线程 CPP 上运行 Tensorflow?
- sql-server - 分页的 SQL 查询
- xamarin.forms - 尝试购买产品时出现 InAppBillingPurchaseException
- reactjs - 如何克隆状态变量以用作反应中的参考?
- ios - Xcode:XCTest 不能比较两个 NSArray 的数字
- python - 将整个数据帧(不仅是数据和标签)传递给 Tensorflow 的 model.fit 的工作原理 - 即如何使用未显式调用的类函数
- scala - Spark从json字符串和字符串scala创建DF
- amazon-web-services - 尝试创建一个使用 aws 市场软件创建 ec2 的 python 函数
- android - Firebase 真实数据库值与检索到的不同