You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中根据数据框首行值筛选保留指定列?

R语言按数据框首行值筛选列的最优方法

需求明确:从数据框DF1中保留ID、Location列,同时筛选出首行值≥1或≤-1.2的其他列。

先确认原始数据构造代码:

ID <- c("First", "Second", "Second", "Third", "Third", "Fourth")
Location <- c("Park", "School", "Home", "Car", "Lake", "Prison")
XPL <- c(-0.5,2,4,1,7,4)
SNA <- c(0.7,5,5,8,5,5)
AAS <- c(1.1,2,6,8,4,1)
APA <- c(-1.2,3,4,5,6,7)
DF1 <- data.frame(ID, Location, XPL, SNA, AAS,APA)

方法一:基础R原生实现

无需额外依赖包,直接用R原生语法完成筛选:

# 提取首行的数值列(排除前两列非数值列)
first_row_vals <- unlist(DF1[1, -c(1,2)])
# 筛选符合条件的列名
target_cols <- names(first_row_vals)[first_row_vals >= 1 | first_row_vals <= -1.2]
# 组合保留列并生成目标数据框
DF_target <- DF1[, c("ID", "Location", target_cols)]

方法二:dplyr包简洁实现

如果习惯tidyverse生态,用dplyr的select函数能更直观完成操作:

library(dplyr)

DF_target <- DF1 %>%
  select(
    ID, Location,
    # 对每一列判断首行值是否符合条件
    where(~ first(.) >= 1 | first(.) <= -1.2)
  )

first(.)会提取每一列的第一个元素,where()函数自动筛选满足条件的列,代码更简洁易读。

两种方法最终都会得到保留ID、Location、AAS、APA列的目标数据框,完全匹配需求。

内容的提问来源于stack exchange,提问作者dkcongo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 12:15:45