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

R语言如何返回另一列最小n值对应的指定列行值

核心问题说明

你当前代码无法得到目标结果有两个核心原因:

  • 你用cbind()构造的对象是字符矩阵,不是数据框,不能用$运算符按列名取子集,且你构造时未指定列名,无法直接通过列名索引
  • 原有逻辑错误调用了rownames(),不需要取行名,直接按排序后的索引提取city列的取值即可
实现代码

先修正数据集定义

如果优先用数据框(更适合多类型字段的分析场景):

# 直接构造带列名的数据框
df <- data.frame(
  city = c("LA", "NY", "Rome"),
  c1 = c(1,1,2),
  c2 = c(0,1,0),
  c3 = c(0,1,2),
  sum = c(1,3,4)
)

如果要保留矩阵结构,先补充列名:

df <- cbind(c("LA", "NY", "Rome"),c(1,1,2),c(0,1,0),c(0,1,2),c(1,3,4))
colnames(df) <- c("city","c1","c2","c3","sum")

提取目标城市

数据框场景下的代码:

# 按sum列升序排序后取前2行的city列值
top2_city <- df$city[order(df$sum)][1:2]
# 拼接为逗号分隔的字符串
paste(top2_city, collapse = ", ")

矩阵场景下的代码:

top2_city <- df[order(df[,"sum"]),"city"][1:2]
paste(top2_city, collapse = ", ")

运行后即可得到输出结果LA, NY。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:00:01