好多函数,脑子蒙圈了,但是按着书本,练习题还是很容易上手的
第一部分练习题:使用dplyr包完成下列操作
rm(list = ls())
library(dplyr)
head(airquality)
air <- tbl_df(airquality) #创建一个可以用的对象
arrange(air,Wind)#根据Wind排序
filter(air,!is.na(air$Ozone))#去除Ozone中NA的值,记住这个函数用的是逻辑值
mutate(air,"Value" = Ozone/Wind,Solar.R = NULL)#增加一列Ozone和Wind的比值,去除Solar.R列
#创建一个新的表格,筛选6,7月份的保留Month,Day,Solar.R
solar <- {filter(air,Month %in% c(6,7)) %>% select(Month,Day,Solar.R)}
#左联合这两个数据(感觉没意义
nData <- left_join(air,solar)
#用新数据根据月份计算Ozone的中值
nData %>%
group_by(Month) %>%
summarise(median(Ozone,na.rm = T))
第二部分练习题:使用data.table完成下列操作
rm(list = ls())
library(data.table)
head(airquality)
air <- data.table(airquality)
class(airquality)
setkey(air,Wind)#排序Wind,其实设置key就是排序
head(air)
air[!is.na(Ozone),]
#太饿了,没时间琢磨了
air[,list(Ozone,Wind, Temp ,Month, Day,Value= Ozone/Wind)]
setkey(air,Month)
#solar <- air[c(6,7),list(Month,Day,Solar.R)]不知道为什么不可以
solar <- air[Month %in% c(6,7),list(Month,Day,Solar.R)]
#
setkey(air,Month,Day,Solar.R)
setkey(solar,Month,Day,Solar.R)
nData <- merge(air,solar,all.x =TRUE,fill = T)
#
nData[,median(Ozone,na.rm = T),by = Month]