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

在R中基于列条件筛选行并提取End_Lat字段的技术问询

R实现目标需求的解决方案

代码实现

方法一:使用dplyr包(推荐,语法简洁易读)

# 若未安装dplyr,先执行安装命令:install.packages("dplyr")
library(dplyr)

# 执行筛选、排序与提取操作
target_end_lat <- data %>%
  # 筛选Sex为FEMALE且第9列值在0.4-1之间的行
  filter(Sex == "FEMALE", between(.[[9]], 0.4, 1)) %>%
  # 按Year升序排列,确保Year最小的行排在首位
  arrange(Year) %>%
  # 选取第一行
  slice(1) %>%
  # 提取End_Lat值
  pull(End_Lat)

# 输出结果
print(target_end_lat)

方法二:基础R实现(无需额外包)

# 筛选符合条件的行
filtered_data <- data[data$Sex == "FEMALE" & data[[9]] >= 0.4 & data[[9]] <= 1, ]

# 若筛选结果有多行,按Year排序后取第一行
if (nrow(filtered_data) > 1) {
  filtered_data <- filtered_data[order(filtered_data$Year), ][1, ]
}

# 提取End_Lat值
target_end_lat_base <- filtered_data$End_Lat

# 输出结果
print(target_end_lat_base)

方法说明

  • 筛选逻辑:
    • 用Sex == "FEMALE"筛选女性样本;
    • 用.[[9]]定位第9列(对应列名M20-1),通过between()或直接比较判断值是否在0.4到1的区间内。
  • 处理多行情况:
    • 当筛选结果存在多行时,通过arrange(Year)(dplyr)或order(filtered_data$Year)(基础R)按年份升序排序,取第一行即可得到Year最小的记录。
  • 提取目标值:
    • dplyr用pull(End_Lat)直接提取数值;基础R则通过列索引$End_Lat获取目标值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:39:57