在R

时间:2016-05-31 19:22:07

标签: r

我是R的初学者用户。我正在参加Coursera R编程课程,我被困在一个作业(污染物意味着家庭作业)。作业的目的是从csv文件中的列中获取方法。这些文件有四列。我们有300多个文件,每个文件有1000多个观察结果。他们中的大多数都是NA。在我正在使用的csv文件中,只有117个数字观察。我一直在尝试这样的事情:

cmydata1 <- read.csv("/Users/joshuavincent/Documents/specdata/001.csv")

一旦我有了cmydata1,我试图得到其中一个列的平均值,&#34;硝酸盐&#34;但我得到了这个:

> mean(cmydata1, "nitrate")
[1] NA
Warning message:
In mean.default(cmydata1, "nitrate") :
  argument is not numeric or logical: returning NA

为了解决这个问题,我创建了一个这样的新列表:

> cmydata2 <- list(na.omit(cmydata1))
> cmydata2[[1]]

结果是清理过的矩阵,不再是NA

列名是:&#34;日期&#34; &#34;硫酸&#34; &#34;硝酸&#34;和身份证。

但是,我仍然无法获得平均值

> mean(cmydata2, "nitrate")
[1] NA
Warning message:
In mean.default(cmydata2, "nitrate") :
  argument is not numeric or logical: returning NA

我尝试修复它,所以我输入...并获得null

> colnames(cmydata2)
NULL

那么,有什么办法可以从该专栏中获得平均值? (后来我觉得必须尝试循环和东西才能完成作业,但我正朝着它迈进!)

注意这可能会有所帮助:我在自动填充中有一个带有表格图标的cmydata1,而cmydata2有一些形状,看起来像一个有组织图标。

由于

1 个答案:

答案 0 :(得分:5)

这是一个相当简单的问题,您应该只参考之前提出过的其他问题。但是,要尝试回答,您可以通过以下两种主要方式引用数据框中的列(尽管还有其他方法)。

data(mtcars) #calling in some data that is stored in R already

##METHOD 1##
mean(mtcars$mpg,na.rm=T) #the 'na.rm=T' is to remove missing values before calculating the mean
20.09062

##METHOD 2##

mean(mtcars[,'mpg'],na.rm=T)
20.09062