如何在R中按指定经验级别筛选数据或创建数据框?
筛选指定经验级别的薪资数据方法
首先你用group_by没效果是因为这个函数是用来分组统计的(比如按经验级别算平均薪资),不是用来筛选行数据的,得用专门的筛选工具。下面给你两种常用的方法:
方法一:基础R(无需额外安装包)
假设你的数据集叫df(如果名字不一样,替换成你实际的数据集名称),直接用逻辑索引筛选:
- 保留所有列(经验级别+薪资):
en_salary <- df[df$experience_level == "EN", ]
- 只保留薪资列:
en_salary <- df[df$experience_level == "EN", "salary"]
解释:df$experience_level == "EN"会生成一个逻辑向量,标记哪些行的经验级别是EN,用这个向量去索引数据集,就能提取出符合条件的行。
方法二:用dplyr包(tidyverse生态,代码更易读)
先加载dplyr包(如果没装过,先运行install.packages("dplyr")):
library(dplyr)
然后用filter()函数筛选:
- 保留所有列:
en_salary <- df %>% filter(experience_level == "EN")
- 只保留薪资列:
en_salary <- df %>% filter(experience_level == "EN") %>% select(salary)
解释:%>%是管道符,把前面的数据集传递给后面的函数,filter()负责筛选符合条件的行,select()用来选择需要的列。
验证结果
你可以运行下面的代码,确认筛选后的数据集只有EN级别的数据:
table(en_salary$experience_level)
内容的提问来源于stack exchange,提问作者Erik TG
相关产品推荐
相关产品推荐

