【发布时间】:2021-12-05 22:28:39
【问题描述】:
正在解决作业问题,现在大脑非常疲倦,有人可以将我推向正确的方向吗?
我已经对数据框进行了排序,并且我已经组织了我想要的东西 - 绑架率最高的国家的价值。我刚刚了解到我可以用 tail 代替 head。
TopKidnap <- NoNACountry[order(NoNACountry$Kidnapping, decreasing = TRUE),]
view(TopKidnap)
head(TopKidnap$Kidnapping, 1)
我得到了正确的答案
[1] 7.17
但是因为我对数据框进行了排序,所以国家名称现在是第 1 行。
我的目标是输出行名 Luxembourg 以及值 17。我认为我与以下代码很接近,但我只是在书中没有看到它(R in Action , R Cookbook 或 R 用于数据科学)。用 Stack Overflow 梳理书籍就到这里了……
head(row.names.data.frame(TopKidnap$Kidnapping), 1)
请问有人可以将我推向正确的方向吗?我用第一列作为 characters 构建了数据框,这些字符是国家名称,表的其余部分是数字。我认为它应该类似于 addrownums 但我没有看到它。
在下面输入
TopKidnap <- structure(list(Intentional.homicide = c(0.65, 0.71, 1.31, 0.71,
1.28), Attempted.intentional.homicide = c(9.61, 2.18, 1.86, 0.55,
6.46), Assault = c(103.76, 160.31, 1.46, 102.18, 15.31), Kidnapping = c(7.17,
5.44, 2.01, 1.71, 1.17), Sexual.violence = c(48.22, 49.05, 9.85,
67.86, 8.52), Robbery = c(74.44, 43.43, 17.85, 41.66, 11.42),
Unlawful.acts.involving.controlled.drugs.or.precursors = c(690.35,
433.33, 35.72, 421.84, 82.59), Country.Totals.per.000s = c(934.2,
694.45, 70.06, 636.51, 126.75)), row.names = c("Luxembourg",
"Germany (until 1990 former territory of the FRG)", "Romania",
"Ireland", "Kosovo (under United Nations Security Council Resolution 1244/99)"
), class = "data.frame")
【问题讨论】:
-
查看
?which.max的手册页。如果只需要最大值或最小值,则无需对数据框进行排序。 -
您的问题是您正在从数据框中提取一个向量(使用
$),并且提取的向量不具有数据框中的行名称信息。相反,您可能想做head(TopKidnap, 1)["Kidnapping"]。 -
不排序 -
TopKidnap[which.max(TopKidnap$Kidnapping), 'Kidnapping', drop = FALSE]
标签: r dataframe sorting head rowname