head 输出包括行名而不是​​行号

head output include row name not the row number

正在做一道作业题,现在脑子很累,有人能给我指点一下吗?

我整理了一个数据框,整理了我想要的东西——绑架率最高的国家的价值。我刚刚了解到我可以使用尾巴而不是头。

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 for Data Science)。将书籍与 Stack Overflow 结合起来...

head(row.names.data.frame(TopKidnap$Kidnapping), 1)

有人可以向我指出正确的方向吗?我用第一列构建数据框作为 characters 是国家名称,其余 table 作为数字。我认为它应该类似于 addrownums,但我没有看到它。

d放在下面

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")

一种可能的方法是对 data.frame 而不是列进行子集化。你可以用

head(TopKidnap[, "Kidnapping", drop=FALSE], 1)
#            Kidnapping
# Luxembourg       7.17

drop=FALSE是为了不让R简化结果。通常,当您 select 一列时,它会转换为向量。 drop=FALSE 将其保存为 data.frame 以保留行名称。