【问题标题】:Calculating the mean of a numeric vector [closed]计算数值向量的平均值
【发布时间】:2014-05-28 20:49:47
【问题描述】:

我正在读取 .csv 文件并尝试执行以下操作:

  1. 从 V5 列中删除逗号,这是 190 个国家/地区的 gdp
  2. 求所有这些数字的平均值

这是我目前的代码:

gdp <- read.csv("GDP.csv", header = FALSE, stringsAsFactors = FALSE, skip=5, nrows=190)
x <- gsub(",", "", gdp$V5)
y <- as.numeric(x)

当我使用时

mean(y)

返回 NA 而不是平均值。我做错了什么?

源文件:https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FGDP.csv

【问题讨论】:

  • 试试mean(y, na.rm=TRUE)
  • 这行得通,但没有产生匹配的平均值(我正在尝试回答多项选择问题,并且选择的平均值与运行上述代码时得到的输出不匹配。跨度>
  • 当我运行那个确切的脚本时,我得到以下信息:'code' Error: unexpected ']' in "x[is.na(as.numeric(as.character(x))]"
  • 我没有收到NA。我得到的意思是377652.4你的问题是什么意思?此外,如果您将在 Excel 中打开文件并检查前 190 行的平均值,它也会生成 377652。所以你的问题有错误。
  • @MrFlick 你还需要一个关闭)x[is.na(as.numeric(as.character(x)))]

标签: r csv mean


【解决方案1】:

您还需要删除空格(如您所见,这些值类似于" X")。这有效:

gdp <- read.csv("https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FGDP.csv", header = FALSE, stringsAsFactors = FALSE, skip=5, nrows=190)
x <- gsub(",| ", "", gdp$V5)
y <- as.numeric(x)
mean(y)

【讨论】:

  • 我试过了,但是 mean(y) 仍然返回 NA。
  • 我要回答的问题如下:从以百万美元为单位的 GDP 数字中去掉逗号,然后取平均值。平均值是多少?我现在运行了这段代码,这似乎有效:'gdp
  • 我得到错误平均值的原因是因为我的 .csv 文件已被(由我)操纵,显然这破坏了正确平均值的计算。当我重新下载文件时,我运行了上面的脚本,并且能够获得正确的平均值。感谢 Stack Overflow 社区!
猜你喜欢
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 1970-01-01
相关资源
最近更新 更多