我有以下数据框
price<-c(100,150,120,150,140,530)
rating<-c(2,2,1,1,1,3)
rooms<-c(1,1,1,1,2,4)
df<-data.frame(price,rating,rooms)
price rating rooms
1 100 2 1
2 150 2 1
3 120 1 1
4 150 1 1
5 140 1 2
6 530 3 4
基本上我想根据评级找到价格的汇总统计数据。我使用split
尝试了以下操作split(df,rating)
但是,如何根据每个评级使用summary
函数作为价格?
还有一种方法可以在不安装任何软件包的情况下完成此操作吗?
答案 0 :(得分:2)
继续你离开的地方:
sapply(split(df$price, rating), summary)
1 2 3
Min. 120.0000 100.0 530
1st Qu. 130.0000 112.5 530
Median 140.0000 125.0 530
Mean 136.6667 125.0 530
3rd Qu. 145.0000 137.5 530
Max. 150.0000 150.0 530
答案 1 :(得分:1)
这是所有基础R.您可以使用by
将函数应用于数据框,并按因子分解。
首先将df$rating
转换为系数。然后假设您想要的摘要统计信息是summary
返回的:
df$rating <- as.factor(df$rating)
by(df$price, df$rating, summary)
df$rating: 1
Min. 1st Qu. Median Mean 3rd Qu. Max.
120.0 130.0 140.0 136.7 145.0 150.0
------------------------------------------------------------
df$rating: 2
Min. 1st Qu. Median Mean 3rd Qu. Max.
100.0 112.5 125.0 125.0 137.5 150.0
------------------------------------------------------------
df$rating: 3
Min. 1st Qu. Median Mean 3rd Qu. Max.
530 530 530 530 530 530
答案 2 :(得分:1)
tapply(df$price, df$rating, mean)