R之筛选变量

本文介绍了在R语言中使用subset函数及dplyr包进行数据框变量选择的方法,包括直接指定变量名、使用通配符选择以及排除特定变量等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

> names(hr)

[1] "satisfaction" "evaluation" "project" "monthlyhour" "serviceyear" "accident" "left" "promotion" "dept" "salary" "SG"

 

变量选取的三种方法如下:

1.subset( )

eg:

> hr01<-subset(hr, select=c(left,salary) )

> names(hr01)

left  salary

 

> hr02<-subset(hr, select=left:salary)

> names(hr02)

left  promotion dept salary

 

> hr03<-subset(hr, select = - salary)

> names(hr03)

satisfaction  evaluation  project  monthlyhour  serviceyear   accident  left  promotion  dept  SG

 

2.dplyr包——filter()

filter()函数并不能选取我们感兴趣的变量,只能按照条件筛选出符合要求的cases,

> hr04<-filter(hr, hr$evaluation>0.72 & hr$project>4 | hr$serviceyear>=4)

 

3.dplyr包——select()

 > hr05<-select(hr,start_with(""))     筛选出名称中以xx开头的变量

 > hr06<-select(hr,end_with(""))      筛选出名称中以xx结尾的变量

  > hr07<-select(hr,contains(""))      筛选出名称中包含xx的变量

  > hr08<-select(hr,-start_with(""))   剔除掉名称中以xx开头的变量

 

> hr_top1<-hr_top %>%select(satisfaction:promotion,SG)

顺带提一下dplyr包的这个管道函数“%>%”,管道函数可以将左边的对象传递给右边的函数。

 

转载于:https://www.cnblogs.com/yilingjian/p/7281169.html

### R语言变量筛选的示例代码 以下是基于提供的引用内容以及专业知识整理的一份关于R语言变量筛选的完整示例代码: #### 使用`subset()`函数选择特定变量 可以通过`subset()`函数来选取感兴趣的列或变量。以下是一个简单的例子: ```r # 创建一个样本数据框 data <- data.frame( var1 = c(1, 2, 3), var2 = c(4, 5, 6), var3 = c(7, 8, 9) ) # 使用 subset 函数选择 var1 和 var2 列 selected_data <- subset(data, select = c(var1, var2)) print(selected_data) # 输选定的数据子集 ``` 此代码展示了如何利用`select`参数指定需要保留的变量[^2]。 #### 基于条件筛选变量 如果希望根据某些逻辑条件筛选变量,则可以扩展`subset()`的功能: ```r # 条件筛选:仅保留 var1 大于等于 2 的行 filtered_data <- subset(data, var1 >= 2, select = c(var1, var2)) print(filtered_data) # 显示符合条件的数据 ``` 这段代码说明了如何结合条件表达式和变量选择功能完成更复杂的操作。 #### 动态创建新变量并参与后续筛选 有时可能需要先动态生成新变量再进行筛选。下面的例子演示了这一过程: ```r # 添加一个新的变量到原始数据集中 data$new_var <- with(data, (var1 + var2)) # 对新增加的新变量执行筛选 final_data <- subset(data, new_var > 5, select = c(new_var, var3)) print(final_data) # 展现最终结果 ``` 这里解释了如何通过计算已有字段构建额外的信息,并将其纳入下一步骤中的过滤器之中[^3]。 #### 高级方法——逐步回归法用于预测变量挑选 对于更加专业的场景比如医学领域内的特征工程来说,采用统计学模型驱动的方式可能是更好的解决方案之一。例如,在线性回归背景下运用向前/向后或者双向消除策略找最优子集组合。 ```r library(MASS) # 构造模拟数据集 set.seed(100) predictors <- matrix(rnorm(100 * 20), ncol=20) response <- rowSums(predictors[,c(1,3)]) + rnorm(100)*sqrt(2) dat <- as.data.frame(cbind(response,predictors)) names(dat)[1]<-"y" step_model<- stepAIC(lm(y~., dat), direction="both") summary(step_model)$coef ``` 该脚本实现了自动化的最佳拟合路径探索机制,适用于大规模高维数目的情况下的降噪需求[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值