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

R语言调用mean()函数报错“Argument is not numeric or logical: returning NA”求助

解决mean()函数报错:Argument is not numeric or logical: returning NA

嘿,别担心,这个问题对R新手来说超常见!我来给你掰扯清楚:

为什么会报错?

你从Excel导入的Ejercicio_2_4其实是一个数据框(data frame)——这是R里用来存表格数据的格式,哪怕只有一列也是数据框。而mean()函数只能直接处理单个的数值向量(就是一列纯数字的集合),直接扔给它整个数据框,它就不知道该怎么算了,所以会返回NA报错。

至于summary()能正常用,是因为这个函数本来就是专门为数据框设计的,它会自动汇总数据框里每一列的统计信息~

简单解决方法(选一种就行)

我给你几个超简单的操作,随便挑一个都能解决:

  • 方法1:直接指定列名
    假设你Excel里的表头叫数值(换成你实际的表头名字就行),用美元符号$提取这一列的数值向量:
    mean(Ejercicio_2_4$数值)
    
    如果记不住列名,也可以用位置索引(因为你只有一列,所以是第1列):
    mean(Ejercicio_2_4[[1]])
    
  • 方法2:把数据框转成向量
    用unlist()函数把数据框拆成单个向量,再算均值:
    mean(unlist(Ejercicio_2_4))
    
  • 方法3:用tidyverse工具(可选)
    如果你以后经常用R处理数据,可以试试dplyr包的pull()函数,先安装加载包(只需要做一次):
    install.packages("dplyr")
    library(dplyr)
    
    然后提取列计算均值:
    mean(pull(Ejercicio_2_4))
    

小验证技巧

你可以先确认一下数据类型,避免踩坑:

  • 输入class(Ejercicio_2_4),如果输出是"data.frame",就说明确实是数据框;
  • 输入class(Ejercicio_2_4$你的列名),确保输出是"numeric",这样就肯定能算出均值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:00:49