r - 仅输出数据框中的数值变量或分类变量
问题描述
我想从“逮捕”创建一个 2 个数据框,第一个仅包含具有数值的变量,另一个仅包含分类变量。例如:
X <- data.frame(Arrests)
X
released colour year age sex employed citizen checks
1 Yes White 2002 21 Male Yes Yes 3
2 No Black 1999 17 Male Yes Yes 3
3 Yes White 2000 24 Male Yes Yes 3
4 No Black 2000 46 Male Yes Yes 1
5 Yes Black 1999 27 Female Yes Yes 1
6 Yes Black 1998 16 Female Yes Yes 0
7 Yes White 1999 40 Male No Yes 0
我想得到一个只包含年份、年龄和支票的数据框,因为它们是数字变量。另一个数据框包括已发布、颜色、性别、就业和公民,因为这些是分类变量。我尝试了下面的代码
Y <- sapply(X, is.numeric)
Y
released colour year age sex employed citizen checks
FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE
现在它知道哪些是数字变量,但我如何创建一个只包含这 3 个数字变量的数据框?还有一个只包含 5 个分类变量的数据框?
解决方案
使用dplyr
,您可以使用select_if
:
library(dplyr)
# Your data
arrests <- data.frame(released = c("Yes", "No"),
colour = c("White", "Black"),
year = c(2002, 1999),
age = c(21,17))
# Solution
select_if(arrests, is.numeric)
year age
1 2002 21
2 1999 17
推荐阅读
- c# - 我们如何启用 SSO 身份服务器 4?
- javascript - 奇怪的 Chrome JavaScript 表达式行为
- android - 单击导航抽屉上的项目时如何解决问题 TabLayouts?
- java - 我的回收站视图显示从设备 Android 中删除的项目
- javascript - 变量未从第一次尝试分配
- apple-numbers - 查找字符串中第一个数字的索引
- google-cloud-platform - 谷歌监控另一个错误?以及如何报告这些?
- php - 我在一个地方得到了未定义的财产?
- ios - 如何将我的 Firebase Firestore 项目从测试模式转变为 iOS 项目的生产模式?
- unity3d - Unity 2019.4 内置管道,Bloom 后处理不起作用