R subset() 函数 - 数据筛选
R subset() 函数用于从数据框中按条件筛选数据。
subset() 的语法比使用 [ ] 方括号筛选更简洁直观。
subset() 函数语法格式如下:
subset(x, subset, select)
参数说明:
x 数据框。
subset 行筛选条件(逻辑表达式)。
select 列筛选,可指定保留哪些列。
实例
# 创建数据框
df <- data.frame(
姓名 = c("张三", "李四", "王五", "赵六", "钱七"),
年龄 = c(25, 30, 28, 35, 22),
成绩 = c(88, 92, 76, 85, 90),
城市 = c("北京", "上海", "北京", "广州", "上海"),
stringsAsFactors = FALSE
)
# 筛选成绩 >= 85 的学生
high_scores <- subset(df, 成绩 >= 85)
print("成绩 >= 85:")
print(high_scores)
# 多条件筛选 AND
print("北京且成绩 >= 80:")
print(subset(df, 城市 == "北京" & 成绩 >= 80))
# 筛选列
print("只显示姓名和成绩:")
print(subset(df, select = c(姓名, 成绩)))
df <- data.frame(
姓名 = c("张三", "李四", "王五", "赵六", "钱七"),
年龄 = c(25, 30, 28, 35, 22),
成绩 = c(88, 92, 76, 85, 90),
城市 = c("北京", "上海", "北京", "广州", "上海"),
stringsAsFactors = FALSE
)
# 筛选成绩 >= 85 的学生
high_scores <- subset(df, 成绩 >= 85)
print("成绩 >= 85:")
print(high_scores)
# 多条件筛选 AND
print("北京且成绩 >= 80:")
print(subset(df, 城市 == "北京" & 成绩 >= 80))
# 筛选列
print("只显示姓名和成绩:")
print(subset(df, select = c(姓名, 成绩)))
执行以上代码输出结果为:
[1] "成绩 >= 85:" 姓名 年龄 成绩 城市 1 张三 25 88 北京 2 李四 30 92 上海 4 赵六 35 85 广州 5 钱七 22 90 上海 [1] "北京且成绩 >= 80:" 姓名 年龄 成绩 城市 1 张三 25 88 北京 [1] "只显示姓名和成绩:" 姓名 成绩 1 张三 88 2 李四 92 3 王五 76 4 赵六 85 5 钱七 90

R 语言实例