有人可以找出该dplyr表如何工作吗?

时间:2019-06-11 20:24:30

标签: r dplyr

我必须创建一个表格,其中每月的对数销售的平均值和中位数是从“ txhousing”数据集中列出的。我得到的练习如下:“下表显示了每月销售日志的均值和中位数,按均值排序”

  • 插入新的r块并在其中键入代码以显示该表
  • 使用na.omit消除值缺失的情况
  • 使用dplyr命令进行突变以使变量logales
  • 使用dplyr命令group_by按月份分组
  • 使用dplyr命令摘要显示表
  • 使用dplyr命令安排平均排序
  • 将命令与管道运算符%>%
  • 连接

我尝试过多次混合代码,但是我不知道为什么它会一直在我的桌子上给我NA。

library(tidyverse)
summary(txhousing)    
na.omit(txhousing)    
txhousing<- as.data.frame(txhousing)
logsales <- log(txhousing$sales)  
group_by(txhousing, txhousing$month)   
txhousing<- txhousing %>% mutate(logsales= log(txhousing$sales))    
txhousing %>% group_by(txhousing$month) %>% summarise(mean(logsales), median(logsales)) %>% arrange(mean)

我希望得到一张具有每月对数销售平均值和中位数的表格,但是我得到的只是中位数中位数的列中的NA,而range给出以下错误:

  

错误:无法将“功能”类的列安排在位置1`

1 个答案:

答案 0 :(得分:0)

列中有NA个值,因此您需要告诉meanmedian忽略它们。并在summarise中命名列,以在名为arrange的列上使用mean

txhousing %>% 
  group_by(txhousing$month) %>% 
  summarise(mean = mean(logsales, na.rm = T), 
            med= median(logsales, na.rm = T)) %>% 
  arrange(mean) %>%
  rename(month = `txhousing$month`)

这将创建以下tibble

# A tibble: 12 x 3
   month  mean   med
   <int> <dbl> <dbl>
 1     1  4.95  4.74
 2     2  5.13  4.93
 3    11  5.19  4.96
 4    12  5.24  5.02
 5    10  5.29  5.08
 6     9  5.32  5.09
 7     3  5.38  5.15
 8     4  5.42  5.21
 9     5  5.52  5.29
10     7  5.53  5.30
11     8  5.53  5.33
12     6  5.56  5.34