vlambda博客
学习文章列表

奈何我只想做一条安静的咸鱼——R语言初始2

咸鱼翻身的第2次更新

写于:北京记录:现在是:2020年5月11日 0:18前言:可以说是昨天是第一次更新,然后下午看了两章R语言的内容,因为之前学习过python,有一定的代码基础,学习期R语言来不是那么的费劲,而且我给自己现阶段的定位就是先把R语言学会到可以简单的处理数据的程度就好了,做所有的事情都要先完成在完美。大部分人做事情都是死于做事情的过程中太要求完美主义了,到时时间太久,坚持力又不够,最终自己定下的目标夭折。其实先完成在完美大家很早就听人说过吧,但是无奈自己做事情希望尽心尽力的做好然后才会有成就感,但是这样需要你综合能力很强,不然很难做到,导致虎头蛇尾。我坚信所以的产品都是妥协的结果,设计产品的人都不是傻子,但是为什么设计出那么多鸡肋的产品呢,原因可能比你想象的更加复杂,好了我要去睡觉了,晚安~

学习内容:

 
   
   
 
  1. R语言最好使用rstudio的包因为有人维护,而且运行速度快还稳定

  2. #查看数据

  3. 使用reader

  4. 安装R语言的包

  5. install.package(reader)


  6. #调用R语言包

  7. library(reader)

  8. #要注意的是读取的编码

  9. #读取csv

  10. r1 <- read_csv(path)

  11. #数据导出,使用ggplot2,也是rtudio的包


  12. 方法1

  13. install.package(ggplot2)

  14. library(ggplot2)

  15. write_csv(r1,path)#这个是rstudio的包


  16. 方法2r自带的方法

  17. write.csv(r1,

  18. fileEnconding='UTF-8',

  19. row.name=FALSE,#相当于索引

  20. )

  21. 读取Excel

  22. 方法1

  23. install.package(readxl)

  24. library(readxl)

  25. r1<-read_xlsx(path='',sheet='')


  26. r1<- readxl :: read_xlsx(path='',

  27. sheet='')



  28. 方法2r自带的方法 不推荐所以就不介绍了,哈哈哈!

  29. 因为读取时候经常产生问题


  30. 其他文件读取

  31. 读取sasspss

  32. 使用包haven

  33. install.package(haven)

  34. library(haven)

  35. spss

  36. r1<- read_sav(path)

  37. r2<- read_dta(path)

  38. r3<- read_sas(path)


  39. 4时间复杂度,空间复杂度(这块比较记得比较着急,后续再更新)

  40. 想起来了,

  41. 时间复杂度就是运行代码所消耗的时间,我们的原则是越快越好;

  42. 空间复杂度就是写的代码越简单越好;

  43. system.time(a<-reader::read_csv(path))


  44. system.time(a<-read.csv(path,encoding='UTF-8',header=TRUE,sep=',')


  45. 从网络中获取数据

  46. 这里指的是连接外部数据库

  47. 安装包

  48. Install.packages(c('DBI','RSQLite','RMySQL','RPostgreSQL'))

  49. CON<- dbConnect(RSQLite::SQLite,':memory:')

  50. dbListTables(con)#这个就是查看数据库中的表

  51. dbWriteTable(con,'mtcars',macars)#建立一个新的表名字叫‘mtcars’,数据是macars

  52. dbListTables(con)#查看数据库

  53. dbWriteTable(con,'Tianic',as.data.frame(Tianic))

  54. dbListTables(con)##查看数据库

  55. dbDisconnect()#断开数据库


  56. #连接MySQL,与上面相似但是不一样

  57. library(RMySQL)

  58. CON<- dbConnect(RMySQL::MySQL(),

  59. dbname="course",

  60. username="root",

  61. password="123456")

  62. dbsendQuery(con_c,'SET NAMES GBK')

  63. dbListTables(con)##查看数据库;如果出现中文乱码,请使用上面的代码

  64. dbGetQuery(con_c,'select * from table')#数据筛选

  65. #创建新表

  66. dbWriteTable(con_c,'table_name',ggplot2::diamonds,row.names=FALSE,overwrite=TRUE)

  67. #row.names=FALSE 就是是否要索引

  68. #overwrite=TRUE 就是当数据库中有相同名字的表时,要不要覆盖掉历史的

  69. dbWriteTable(数据库连接,'表名',数据集,row.names=FALSE,overwrite=TRUE)


  70. 过滤和筛选操作

  71. install.packages('dblyr')#怎么记忆这个表名呢database library of R

  72. library(dblyr)

  73. #管道操作pipe %>%

  74. #使用数据集

  75. install.package('nycflights13')

  76. nycflights::flights%>%head()#查看前6行数据

  77. nycflights::flights%>%View()#查看全部数据


  78. #过滤函数:filter

  79. library('nycflights13')

  80. library (dblyr)


  81. filter(flights,month==1,day==1)

  82. filter(数据集,针对变量筛选条件)


  83. r1 <- filter(dataset,month==12,day==15)


  84. (r1 <- filter(dataset,month==12,day==15))

  85. #外面嵌套一层括号可以实现即存储在View中也在输出框中显示


  86. 比较运算

  87. filter(flights,dep_delay>120)%>%count() #计算个数

  88. filter(flights,dep_delay>120,arr_delay>120)#双条件

  89. filter(flights,(dep_delay>120|arr_delay>120))#与或非条件


  90. 包含缺失记录筛选

  91. df <- tibble(x==c(1,NA,3))

  92. df %>% filter(X>1|is.na(x))


  93. library(bdlyr)

  94. sub_mtcars <- head(mtcars,10)#显示前10

  95. #默认升序排列

  96. sub_mtcars%>% arrange(cyl,gear)%>% View()

  97. #翻译:sub_mtcars然后排序(按cyl和gear排序)然后全部显示


  98. #默认降序排列

  99. sub_mtcars%>% arrange(desc(cyl),gear)%>% View()

  100. #第一个变量降序,第二个变量升序



  101. df <- tibble(x=c(5,2,NA),y=c(1,'b',99))#使用tibble格式


  102. arrange(df,x)

  103. arrange(df,desc(x))


  104. arrange(df,is.na(x))

  105. arrange(df,desc(is.na(x)))


  106. (4)对选择变量重命名


  107. iris%>%as_tibble()%>%rename(p_length=petal.length,s_length=sepel.Length)

  108. (5)添加新的变量:mutate()

  109. mutate(

  110. flights_sml,

  111. gain=arr_delay-dep_delay,

  112. speed=distance/air_time)

  113. #注意上面不赋给数据集则会产生在console里面

  114. #如果上面赋给一个变量则会产生在原数据集后面

  115. #如果只想展示创建的几个变量那么可以使用transmute函数

  116. transmute(flights,gain=arr_delay-dep_delay,hours=air_time/60,gain_per_hour=gain/hours)

  117. #求余数 251%%100 =1

  118. #求商的整数 251%/% 100=2


点击原文可以进入我的博客,感兴趣的可以看一下~