对数据部分使用均值函数的方法

时间:2014-01-22 11:32:30

标签: r dataframe specifications mean

您好, 我正在学习R,此时我使用“虹膜”数据,它是R的默认部分。在虹膜数据中,我想将“均值”函数应用于数据帧的一部分。

我的问题并不涉及任何复杂的问题 这是因为我还是R的新手。

我使用的数据是:

library(datasets)
data(iris)

head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

我想用它做的只是应用均值函数,例如在物种中的“setosa” 我想为“Sepal.Lenght”计算它。 我这样做的方式是(我实际上将它应用于“virginica”物种, 但我的意思是它的例子):

virgin<- iris[101:150,1]
virgin

然后

mean(virgin)

它给了我正确的意思,但我认为这种方法很简单 当你不想手动搜索data.frame时可能不适合

所以我的问题是如何通过其他功能来做同样的事情 apply或其他我不了解的人。

你也可以建议一些来源我可以在哪里阅读更多相关信息。 它也可以是这个页面(我发现只有更高级的问题)。 如果你想要的话。

谢谢。

1 个答案:

答案 0 :(得分:1)

您的问题实际上是关于如何对数据框进行分组。

这是一种方式:

mean(iris$Sepal.Length[iris$Species=="virginica"])
[1] 6.588

使用函数with()

可以重复此操作,减少重复
mean(with(iris, Sepal.Length[Species=="virginica"]))
[1] 6.588

另一种方式:

mean(with(iris, iris[Species=="virginica", "Sepal.Length"]))
[1] 6.588