【问题标题】:Get a value with the highest level from a different data从不同的数据中获取最高级别​​的值
【发布时间】:2017-06-18 17:10:14
【问题描述】:

假设我有一些数据,包括一些姓名和在校成绩的信息。

name = c('Ann','Dann','Pann', 'Sam', 'Lora', 'Peter')
score = c(30,30,50,70,20,10)
school = data.frame(name=name, score=score)

我可以使用 'which.max' 来查找最高级别的数据。

data = school[which.max(school$score),]
data$name
[1] Sam

现在我想在 Aclass 集中找到得分最高的名字。

Aclass = c('Peter','Pann', 'Lora', 'Smith')

结果应该是

[1] 'Pann'

请注意,“Smith”不是学校数据的一部分。 不管Aclass里有多少新名字,我要找的只是学校数据中得分最高的名字。我应该编写什么代码来获取它?

【问题讨论】:

    标签: r


    【解决方案1】:

    此方法使用with 搜索data.frame 学校的子集以减少打字。

    with(school[school$name %in% Aclass,], name[which.max(score)])
    
    [1] Pann
    Levels: Ann Dann Lora Pann Peter Sam
    

    【讨论】:

    • 还有school$name[which.max(school$score*(school$name %in% Aclass))],它避免了子集。
    • 太棒了!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多