您好我有这样的数据集。
Age Sallary
24 >50k
17 <=50k
31 >50k
24 >50k
我需要找到最多> 50k sallary的年龄
答案 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))