前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言快速入门主线知识点分享|文末有资源

R语言快速入门主线知识点分享|文末有资源

作者头像
拴小林
发布2021-10-11 11:16:29
8270
发布2021-10-11 11:16:29
举报
文章被收录于专栏:数据驱动实践
代码语言:javascript
复制
## 0、Rstudio界面介绍及快捷键
# 运行当前/选中行 ctrl+enter
# 中止运行 esc
# 插入 <-    Alt+-
# 插入 %>%    Ctrl+Shift+M
# 快捷注释(支持多行选中)ctrl+shift+c      快捷注释后,如取消注释ctrl+shift+c 
# Rstudio自动补全 tab
x <-  5

## 1、生成数据
set.seed(0)
set.seed(1)
c()
seq() #生成等差数据
rep() #重复生成数据
rep(1:10,2)
factor() #因子数据
#语法 factor(x = character(), levels, labels = levels,…) 
#补充cut
x <- c("Man", "Male", "Man", "Lady", "Female")
## Map from 4 different values to only two levels:
xf <- factor(x, levels = c("Male", "Man" , "Lady",   "Female"),
             labels = c("Male", "Male", "Female", "Female"))
#> [1] Male   Male   Male   Female Female
#> Levels: Male Female

x <- c("Man", "Male", "Man", "Lady", "Female")
## Map from 4 different values to only two levels:
xf <- factor(x, levels = c("Male", "Man" , "Lady",   "Female"),
             labels = c("1", "1", "2", "2"))
# [1] 1 1 1 2 2
# Levels: 1 2

######## cut分段
x <-  round(rnorm(100)*100,digits = 2)
x_cut <- cut(x,breaks = seq(-100,100,length.out = 11))
x_group_count <- table(cut(x,breaks = seq(-100,100,length.out = 11)))


paste() #连接字符  paste0  无空格连接
paste("A","B","C")
paste0("A","B","C")
# > paste("A","B")
# [1] "A B"
# > paste("A","B","C")
# [1] "A B C"
# > paste0("A","B","C")
# [1] "ABC"
sample() # 抽样



## 2、数据类型
vector # 向量(数值型、字符型、逻辑型)  #单一向量中必须拥有同一类型
matrix矩阵
matrix(1:12,nrow = 3)  #等效matrix(1:12,ncol = 4)
matrix(1:12,ncol = 4)  
matrix(1:12,nrow = 3,byrow = TRUE)

data.frame # 数据框
tibble #一种data.frame
x <- matrix(1:12,nrow = 3,byrow = TRUE)
df <- data.frame(x)
as.matrix(df) # 转换为matrix数据
is.data.frame(x) # 判断是否欸data.frame类型
array # 数组
list列表
list(x,df)


## 3、读存数据(read、save)
# 3.1设置工作目录【很重要】
setwd("E:/") #设置当前工作目录为"E:/"
getwd() #读取当前工作空间的工作目录(文件读取保存路径)

read.table() #读取带分隔符的文本/数据文件
read.csv() #读取.csv格式的数据,read.table的一种特定应用
df <- read.csv("da.csv",header = T, stringsAsFactors= T)
str(df)

# excel数据文件读取  .XLS  .xlsx
# install.packages("readxl")
library(readxl)
df <- read_excel("da.xlsx",sheet=1)

保存为.Rdata

write.table()
write.csv(df,"dfx.csv") # .csv格式导出  



# 4、数据操作  查询、引用、增删(合并)、排序、dplyr tidyr
# ###########数据概况  str()  summary()  class()
x <- matrix(1:12,nrow = 3,byrow = TRUE)
df <- data.frame(x)
str(df)
summary(df)
# > str(df)
# 'data.frame':  3 obs. of  4 variables:
#   $ X1: int  1 5 9
# $ X2: int  2 6 10
# $ X3: int  3 7 11
# $ X4: int  4 8 12
# > summary(df)
# X1          X2           X3           X4    
# Min.   :1   Min.   : 2   Min.   : 3   Min.   : 4  
# 1st Qu.:3   1st Qu.: 4   1st Qu.: 5   1st Qu.: 6  
# Median :5   Median : 6   Median : 7   Median : 8  
# Mean   :5   Mean   : 6   Mean   : 7   Mean   : 8  
# 3rd Qu.:7   3rd Qu.: 8   3rd Qu.: 9   3rd Qu.:10  
# Max.   :9   Max.   :10   Max.   :11   Max.   :12  

############ 引用  ############
x[1,4]  # 值引用 x[行索引,列索引] 
# 行/列引用  x[行索引,] 或x[,列索引]
x[1,] # 引用第一行    
x[,4] # 引用第一列
x[2:3,2:3] # 行列混合引用(矩阵)  x[行初始索引:行终止索引,列初始索引:列终止索引]     

# > x[1,4]  # 值引用 x[行索引,列索引] 
# [1] 4
# > # 行/列引用  x[行索引,] 或x[,列索引]
#   > x[1,] # 引用第一行    
# [1] 1 2 3 4
# > x[,4] # 引用第一列
# [1]  4  8 12
# > x[2:3,2:3] # 行列混合引用(矩阵)  x[行初始索引:行终止索引,列初始索引:列终止索引]
# [,1] [,2]
# [1,]    6    7
# [2,]   10   11


names(df)[5] <- "testNAME" # 列重命名(二位数据框,变量)names()   

############ (多)数据(关联)合并  ############
cbind(x,matrix(1:nrow(x),ncol = 1)) # 将x 与 matrix(1:nrow(x),ncol = 1) 按列合并
## S3 method for class 'data.frame'
merge(x, y, by = intersect(names(x), names(y)),
      by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all,
      sort = TRUE, suffixes = c(".x",".y"), no.dups = TRUE,
      incomparables = NULL, ...)

rbind(x,rep("A",ncol(x))) # 向数据集中增加行
join #补充学习多数据关联匹配-join相关    https://mp.weixin.qq.com/s/EAJe0EXq2JWlTWEgREV5vw

############ 单元格、行列值(计算)修改(逻辑修改)  ############
x <- matrix(1:12,nrow = 3,byrow = TRUE)
x
x[1,1] <- 100     #修改指定单元格
x[,2] <- 0 # 修改指定列
transform(airquality, Ozone = -Ozone) # 对原始列进行计算
transform(airquality, new = -Ozone, Temp = (Temp-32)/1.8) # 对原始列进行计算
# > x <- matrix(1:12,nrow = 3,byrow = TRUE)
# > x
# [,1] [,2] [,3] [,4]
# [1,]    1    2    3    4
# [2,]    5    6    7    8
# [3,]    9   10   11   12
# > x[1,1] <- 100     #修改数据【修改指定单元格,修改指定列,with 关联修改】
# > x
# [,1] [,2] [,3] [,4]
# [1,]  100    2    3    4
# [2,]    5    6    7    8
# [3,]    9   10   11   12
# > x[,2] <- 0
# > x
# [,1] [,2] [,3] [,4]
# [1,]  100    0    3    4
# [2,]    5    0    7    8
# [3,]    9    0   11   12


############  排序&去重 补充学习https://mp.weixin.qq.com/s/0D9TyYqETCuIAWI0f_LvIQ
# 排序
sort # 单列排序返回值
order # 单列排序返回索引
rank # 单列排序返回“秩”
arrage # 多列排序
reorder # 用在绘图中
#去重
unique # 单向量/多列完全重复去重
duplicated # 函数


############  数据筛选(逻辑) 条件筛选、&、|  补充学习 《补充-R 语言 逻辑运算:TRUE_FALSE _ 专题3.pdf》
# 关于逻辑 可适当补充apply系列函数 
# & 和 且
TRUE & TRUE
TRUE & FALSE
# | 或
TRUE | TRUE
TRUE | FALSE
#xor异或:当对应元素不等时返回TRUE
xor(T,F) #返回TRUE            
xor(T,T)
xor(F,F)
# 所有为真T,返回T
all(T,T)
all(T,F)
# 任意为真T,返回T
any(T,F)
any(F,F)

# > # & 和 且
#   > TRUE & TRUE
# [1] TRUE
# > TRUE & FALSE
# [1] FALSE
# > # | 或
#   > TRUE | TRUE
# [1] TRUE
# > TRUE | FALSE
# [1] TRUE
# > #xor异或:当对应元素不等时返回TRUE
#   > xor(T,F) #返回TRUE            
# [1] TRUE
# > xor(T,T)
# [1] FALSE
# > xor(F,F)
# [1] FALSE
# > # 所有为真T,返回T
#   > all(T,T)
# [1] TRUE
# > all(T,F)
# [1] FALSE
# > # 任意为真T,返回T
#   > any(T,F)
# [1] TRUE
# > any(F,F)
# [1] FALSE


options(digits=3) # 设置有效数字  
NA # 缺失值

##### dplyr包 的下述五个函数用法
filter # 筛选: 
arrange # 排列: 
select # 选择: 
mutate # 变形: 
summarise # 汇总: 
group_by #分组: 

#示例 分组汇总计算 
data("iris")
str(iris)
library(dplyr)
iris %>% 
  group_by(Species) %>% 
  summarise(mean_Petal.Length = mean(Petal.Length),
            yangbenshu = n(),
            max_Petal.Length = max(Petal.Length))
# > library(dplyr)
# > iris %>% 
#   +   group_by(Species) %>% 
#   +   summarise(mean_Petal.Length = mean(Petal.Length),
#                 +             yangbenshu = n(),
#                 +             max_Petal.Length = max(Petal.Length))
# # A tibble: 3 x 4
# Species    mean_Petal.Length yangbenshu max_Petal.Length
# <fct>                  <dbl>      <int>            <dbl>
#   1 setosa                  1.46         50              1.9
# 2 versicolor              4.26         50              5.1
# 3 virginica               5.55         50              6.9


##### tidyr包 的下述四个函数用法
gather # 宽数据转为长数据:(excel透视表反向操作)
spread # 长数据转为宽数据:(excel透视表功能)
unit # 多列合并为一列:
separat # 将一列分离为多列
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据驱动实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档