如何找到数据框第一行中值最大的列?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
相关产品推荐
相关产品推荐

