You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何提取排序后dataframe最高绑架率对应的行名与数值

问题原因

你调用row.names.data.frame(TopKidnap$Kidnapping)未得到预期结果的核心原因:TopKidnap$Kidnapping是从数据框中提取的单列数值向量,仅保留了数值本身,不继承原数据框的行名属性,行名是数据框层级的元数据,仅存储在TopKidnap数据框对象中。

可行实现方案

基础R实现

  • 仅提取最高绑架率对应的国家名:
rownames(TopKidnap)[1]

运行后直接返回结果:"Luxembourg"

  • 同步输出国家名与对应绑架率:
# 方法1:直接拼接输出
cat("最高绑架率国家:", rownames(TopKidnap)[1], ",绑架率:", TopKidnap$Kidnapping[1], "\n")

# 方法2:保留数据框结构输出,自动展示行名
TopKidnap[1, "Kidnapping", drop = FALSE]

方法2输出示例:

Kidnapping
Luxembourg       7.17

Tidyverse风格实现

如果平时使用tidyverse生态工具,可以先将行名转为普通列后操作,逻辑更直观:

library(tibble)
library(dplyr)

TopKidnap %>%
  rownames_to_column("country") %>% # 将行名转为名为country的普通列
  slice_max(Kidnapping, n = 1) %>%  # 取绑架率最高的1行
  select(country, Kidnapping)       # 筛选需要展示的列

内容的提问来源于stack exchange,提问作者iKcon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:06:03