R,哪个行值包含最相同的列值

时间:2017-03-28 15:39:04

标签: r

您好我有这样的数据集。

Age  Sallary  
24   >50k  
17   <=50k  
31   >50k  
24   >50k  

我需要找到最多> 50k sallary的年龄

1 个答案:

答案 0 :(得分:1)

使用akrun的table评论,

names(which.max(table(df)[, ">50k"]))
[1] "24"

table计算这两列的交叉表。 [, ">50K"]子集到您要查找的工资列,然后which.max拉出包含最大计数的此列的第一个元素。最后,由于每个函数返回一个命名向量,我们可以用names提取年龄。

如果data.frame包含其他列,您可以将table(df)替换为table(df$Age, df$Sallary),以便从data.frame中选择这些变量。

所以

names(which.max(table(df$Age, df$Sallary)[, ">50k"]))
[1] "24"

也适用于示例数据集。

数据

df <- 
structure(list(Age = c(24L, 17L, 31L, 24L), Sallary = structure(c(2L, 
1L, 2L, 2L), .Label = c("<=50k", ">50k"), class = "factor")), .Names = c("Age", 
"Sallary"), class = "data.frame", row.names = c(NA, -4L))