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

提取数据集最后100条后调用mean()报错:argument is not numeric or logical

问题排查与修复方案

报错原因

  • last_100_entries是通过tail()提取的子数据框,并非单一的数值/逻辑向量。mean()函数的默认方法mean.default仅支持对向量计算均值,直接传入数据框会因类型不匹配触发警告,返回NA。

修复方法

情况1:计算某一列的均值(比如balance列)

明确指定要计算均值的列,提取该列的向量后再调用mean():

dat <- read.csv("Default.csv", stringsAsFactors = TRUE)
last_100_entries <- tail(dat, 100)
# 提取balance列并计算均值,na.rm=TRUE用于忽略缺失值(可选)
average_balance <- mean(last_100_entries$balance, na.rm = TRUE)

情况2:计算所有数值列的均值

如果需要批量计算数据框中所有数值类型列的均值,可使用以下方法:

基础R实现

# 遍历每一列,仅对数值列计算均值
numeric_col_means <- sapply(last_100_entries, function(col) {
  if (is.numeric(col)) mean(col, na.rm = TRUE) else NA
})

dplyr包实现(更简洁)

先安装并加载dplyr包,再筛选数值列计算均值:

install.packages("dplyr") # 首次使用需安装
library(dplyr)

numeric_col_means <- last_100_entries %>%
  select_if(is.numeric) %>%
  colMeans(na.rm = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:42:37