您好, 我正在学习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
或其他我不了解的人。
你也可以建议一些来源我可以在哪里阅读更多相关信息。 它也可以是这个页面(我发现只有更高级的问题)。 如果你想要的话。
谢谢。
答案 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