根据R中给定价格的不同评级计算汇总统计数据?

时间:2018-05-03 15:14:49

标签: r dataframe

我有以下数据框

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函数作为价格?

还有一种方法可以在不安装任何软件包的情况下完成此操作吗?

3 个答案:

答案 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)