最近学习的知识点总结如下:
3.1 去掉多余的数据
1)去掉不需要的行:
使用sqldf包中的sqldf()函数使用sql语句进行操作
library(sqldf)
sqldf("select* from mtcars where am=1 and vs=1")
运行结果如下:
与上面语句相同结果的语句如下:
subset(mtcars,am==1&vs==1)
运行结果如下:
这是由于sqdf()函数的默认参数row.names=FALSE,需要修改为TRUE。然后结果就一致,比较结果是否一致用的函数是:
identical()函数
identical(sqldf("select* from mtcars where am=1 and vs=1",row.names=TRUE),
+ subset(mtcars,am==1&vs==1)
+ )
2)去掉不需要的列
subset(mtcars,am==1&vs==1,select=hp:wt)
3.1.1 快速去掉多余数据
library(hflights)
library(sqldf)
system.time(sqldf("SELECT * from hflights where Dest == 'BNA'",row.names=TRUE)) #计算时间
system.time(subset(hflights,Dest=='BNA'))
library(dplyr) #dplyr包可以处理
system.time(filter(hflights,Dest=='BNA'))