通过删除NA数据,根据多个CSV文件中的行和列条件计算平均值

时间:2015-02-13 23:40:56

标签: loops csv dataframe mean rbind

我正在处理超过300个csv文件中的数据。每个csv文件中的变量列名称相同。我使用rbind和loop将列堆叠成一个空数据帧。我想计算一列的平均值,但在此之前,我需要(1)根据另一列中的值对数据帧进行子集或隔离。

示例:

考虑以下名为dfABC()

的数据框
A     B     C
1     5     7
1     4     6
4     5     8
2     5     7
2     1     7
3     2     3

我需要根据列中的值缩小数据框。假设我想根据B列缩小数据帧。假设我想返回B = 5的所有行。然后我会得到这个数据帧:

A     B     C
1     5     7
4     5     8
2     5     7  

从这个新数据框(即dfABC2()),我将能够计算A列或C列的平均值。

此外,在计算平均值之前,我需要删除NA值。非常感谢您的帮助。我尝试了各种方法,但每种方法似乎都会返回某种错误消息和/或根据我应该收到的内容返回不正确的数字。

1 个答案:

答案 0 :(得分:0)

您可以使用

dataframeWothoutNAs <-na.omit(df)

从数据框中删除na值。

您可以使用subset功能执行子集化。

这是一个链接,其中包含一些不同的子集示例,一些使用子集函数,另一些使用其他方法(没有双关语)

http://www.statmethods.net/management/subset.html

e.g。

subsetteddata <- subset(df, B == 5)