我创建了一个名为“data”的数据框,并且有100行名称和相应的年龄(名称“NAMES”和“AGES”)。现在我尝试使用max()函数找到最大年龄 max(data [,“AGES”])
我获得了最大年龄,但我也希望获得该职位以及具有最大年龄的人的姓名。在得到最大年龄的人的名字后,我想按字母顺序排列它们。我该怎么做?
我尝试在网上搜索,但没有成功地总结不同的东西..
答案 0 :(得分:0)
让我们先生成一些演示数据:
data<-data.frame(NAMES=replicate(100, paste(sample(letters, 8, replace=T), collapse="")), AGES=sample(20:60, 100, replace=T))
head(data)
NAMES AGES
1 oepefudt 21
2 ibmuaemm 49
3 mkockaqu 23
4 whyzomna 59
5 omqqtbsz 35
6 qnbmjmuf 25
然后我们可以找到具有最大年龄的行,提取它们的名称,最后按字母顺序将它们排成一行:
sort(as.character(data$NAMES[data$AGES==max(data$AGES)]))
或者可能更透明:
# Find the maximum age
max.age<-max(data$AGES)
# Which rows have the maximum age value?
ind<-which(data$AGES==max.age)
# Extract the name using the ind from above
persons<-as.character(data$NAMES[ind])
# Sort the names
persons.sorted<-sort(persons)
persons.sorted
这会有帮助吗?