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

如何找到数据框第一行中值最大的列?R代码报错求助

解决R中提取数据框第一行最大值对应列名的语法错误

错误原因

你写的代码df[[,1]]是语法错误:[[操作符在R的data.frame中只能用来提取单个元素或单列(比如df[[1]]取第一列,df[["colname"]]取指定列),它不支持省略第一个参数的写法(也就是你写的,1前面空着),所以R报错提示argument "..1" is missing——意思是你没给[[需要的第一个索引参数。而且你要提取的是第一行的所有值,[[也做不到这个,提取整行得用[操作符。

正确写法

基础R写法

直接提取第一行,找到最大值位置后匹配列名:

colnames(df)[which.max(df[1, ])]
  • df[1, ]:提取数据框的第一行,返回一个包含该行所有列值的向量
  • which.max(df[1, ]):找到这个向量中最大值对应的位置索引
  • colnames(df)[索引]:用索引取出对应的列名

用dplyr的写法(可选)

如果你习惯用tidyverse工具链,可以这样写:

library(dplyr)

df %>% 
  slice(1) %>%  # 取第一行
  select(which.max(.)) %>%  # 选中最大值所在的列
  colnames()  # 获取列名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:45:36