如何基于SAS数据集某变量最大值打印对应记录(含并列最大值场景)
1. Python(pandas库)实现
import pandas as pd # 读入多空格分隔的文本数据 df = pd.read_csv("你的数据文件路径", sep="\s+") # 筛选age为最大值的行、删除region列后打印 result = df[df['age'] == df['age'].max()].drop('region', axis=1) print(result.to_string(index=False))
2. R语言实现
# 读入数据 df <- read.table(text = " name age sex region Paul 60 M 1 Emily 42 F 2 Laura 60 F 2 Brad 48 M 1 Linda 58 F 3 ", header = TRUE) # 筛选指定行、排除region列后打印 result <- subset(df, age == max(age), select = -region) print(result, row.names = FALSE)
3. SQL实现
假设数据存储在名为user_info的表中:
SELECT name, age, sex FROM user_info WHERE age = (SELECT MAX(age) FROM user_info);
4. Linux awk命令行实现
数据存为文本文件data.txt时可直接运行:
awk 'NR==1{print $1,$2,$3; max=0} NR>1{if($2>max) max=$2; row[NR]=$0} END{for(i=2;i<=NR;i++){split(row[i],arr); if(arr[2]==max) print arr[1],arr[2],arr[3]}}' data.txt | column -t
column -t用于自动对齐输出列,和你需要的格式完全匹配。
内容的提问来源于stack exchange,提问作者Elena
相关产品推荐
相关产品推荐

