R語(yǔ)言快速入門(mén)主線知識(shí)點(diǎn)分享

0、Rstudio界面介紹及快捷鍵

運(yùn)行當(dāng)前/選中行 ctrl+enter

中止運(yùn)行 esc

插入 <- Alt+-

插入 %>% Ctrl+Shift+M

快捷注釋?zhuān)ㄖС侄嘈羞x中)ctrl+shift+c 快捷注釋后,如取消注釋ctrl+shift+c

Rstudio自動(dòng)補(bǔ)全 tab

x <- 5

1村视、生成數(shù)據(jù)

set.seed(0)
set.seed(1)
c()
seq() #生成等差數(shù)據(jù)
rep() #重復(fù)生成數(shù)據(jù)
rep(1:10,2)
factor() #因子數(shù)據(jù)

語(yǔ)法 factor(x = character(), levels, labels = levels,…)

補(bǔ)充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 無(wú)空格連接
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、數(shù)據(jù)類(lèi)型

vector # 向量(數(shù)值型、字符型、邏輯型) #單一向量中必須擁有同一類(lèi)型
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 # 數(shù)據(jù)框
tibble #一種data.frame
x <- matrix(1:12,nrow = 3,byrow = TRUE)
df <- data.frame(x)
as.matrix(df) # 轉(zhuǎn)換為matrix數(shù)據(jù)
is.data.frame(x) # 判斷是否欸data.frame類(lèi)型
array # 數(shù)組
list列表
list(x,df)

3舵变、讀存數(shù)據(jù)(read、save)

3.1設(shè)置工作目錄【很重要】

setwd("E:/") #設(shè)置當(dāng)前工作目錄為"E:/"
getwd() #讀取當(dāng)前工作空間的工作目錄(文件讀取保存路徑)

read.table() #讀取帶分隔符的文本/數(shù)據(jù)文件
read.csv() #讀取.csv格式的數(shù)據(jù)瘦穆,read.table的一種特定應(yīng)用
df <- read.csv("da.csv",header = T, stringsAsFactors= T)
str(df)

excel數(shù)據(jù)文件讀取 .XLS .xlsx

install.packages("readxl")

library(readxl)
df <- read_excel("da.xlsx",sheet=1)

保存為.Rdata

write.table()
write.csv(df,"dfx.csv") # .csv格式導(dǎo)出

4纪隙、數(shù)據(jù)操作 查詢(xún)、引用扛或、增刪(合并)绵咱、排序、dplyr tidyr

###########數(shù)據(jù)概況 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" # 列重命名(二位數(shù)據(jù)框熙兔,變量)names()

############ (多)數(shù)據(jù)(關(guān)聯(lián))合并 ############
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))) # 向數(shù)據(jù)集中增加行
join #補(bǔ)充學(xué)習(xí)多數(shù)據(jù)關(guān)聯(lián)匹配-join相關(guān) https://mp.weixin.qq.com/s/EAJe0EXq2JWlTWEgREV5vw

############ 單元格悲伶、行列值(計(jì)算)修改(邏輯修改) ############
x <- matrix(1:12,nrow = 3,byrow = TRUE)
x
x[1,1] <- 100 #修改指定單元格
x[,2] <- 0 # 修改指定列
transform(airquality, Ozone = -Ozone) # 對(duì)原始列進(jìn)行計(jì)算
transform(airquality, new = -Ozone, Temp = (Temp-32)/1.8) # 對(duì)原始列進(jìn)行計(jì)算

> 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 #修改數(shù)據(jù)【修改指定單元格,修改指定列住涉,with 關(guān)聯(lián)修改】

> 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

############ 排序&去重 補(bǔ)充學(xué)習(xí)https://mp.weixin.qq.com/s/0D9TyYqETCuIAWI0f_LvIQ

排序

sort # 單列排序返回值
order # 單列排序返回索引
rank # 單列排序返回“秩”
arrage # 多列排序
reorder # 用在繪圖中

去重

unique # 單向量/多列完全重復(fù)去重
duplicated # 函數(shù)

############ 數(shù)據(jù)篩選(邏輯) 條件篩選麸锉、&、| 補(bǔ)充學(xué)習(xí) 《補(bǔ)充-R 語(yǔ)言 邏輯運(yùn)算:TRUE_FALSE _ 專(zhuān)題3.pdf》

關(guān)于邏輯 可適當(dāng)補(bǔ)充apply系列函數(shù)

& 和 且

TRUE & TRUE
TRUE & FALSE

| 或

TRUE | TRUE
TRUE | FALSE

xor異或:當(dāng)對(duì)應(yīng)元素不等時(shí)返回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異或:當(dāng)對(duì)應(yīng)元素不等時(shí)返回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) # 設(shè)置有效數(shù)字
NA # 缺失值

dplyr包 的下述五個(gè)函數(shù)用法

filter # 篩選:
arrange # 排列:
select # 選擇:
mutate # 變形:
summarise # 匯總:
group_by #分組:

示例 分組匯總計(jì)算

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包 的下述四個(gè)函數(shù)用法

gather # 寬數(shù)據(jù)轉(zhuǎn)為長(zhǎng)數(shù)據(jù):(excel透視表反向操作)
spread # 長(zhǎng)數(shù)據(jù)轉(zhuǎn)為寬數(shù)據(jù):(excel透視表功能)
unit # 多列合并為一列:
separat # 將一列分離為多列

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碱屁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蛾找,更是在濱河造成了極大的恐慌娩脾,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腋粥,死亡現(xiàn)場(chǎng)離奇詭異晦雨,居然都是意外死亡架曹,警方通過(guò)查閱死者的電腦和手機(jī)隘冲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绑雄,“玉大人展辞,你說(shuō)我怎么就攤上這事⊥蛭” “怎么了罗珍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵洽腺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我覆旱,道長(zhǎng)蘸朋,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任扣唱,我火速辦了婚禮藕坯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘噪沙。我一直安慰自己炼彪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布正歼。 她就那樣靜靜地躺著辐马,像睡著了一般。 火紅的嫁衣襯著肌膚如雪局义。 梳的紋絲不亂的頭發(fā)上喜爷,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天萄唇,我揣著相機(jī)與錄音,去河邊找鬼穷绵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛仲墨,可吹牛的內(nèi)容都是我干的勾缭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼目养,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了幻梯?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤努释,失蹤者是張志新(化名)和其女友劉穎碘梢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伐蒂,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年恩沛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷客。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搅裙,死狀恐怖妓局,靈堂內(nèi)的尸體忽然破棺而出呈宇,到底是詐尸還是另有隱情,我是刑警寧澤甥啄,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布蜈漓,位于F島的核電站,受9級(jí)特大地震影響融虽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜有额,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一巍佑、第九天 我趴在偏房一處隱蔽的房頂上張望茴迁。 院中可真熱鬧萤衰,春花似錦、人聲如沸脆栋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丘薛。三九已至嘉竟,卻和暖如春洋侨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背边苹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工裁僧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聊疲。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像阱表,于是被迫代替她去往敵國(guó)和親贡珊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容