R語言-v1-基礎(chǔ)知識

R語言-v1-基礎(chǔ)知識

Iretara?12-17 21:18

以例題的形式簡述R語言基礎(chǔ)知識

# 讀取文件

setwd("文件鏈接的時候,用?/?")

install.packages("readxl")

library(readxl)

library(tidyverse)

hw1_a<-read_excel("hw1_a.xlsx",col_types=c("numeric", "numeric", "numeric", "numeric", "numeric"))

hw1_b<-read_excel("hw1_b.xlsx")

#讀取csv

library(readr)

hw1_a<-read_csv("/")

View(hw1_a)

# 描述型函數(shù)

hw1_a + hw1_b 表

#描述最小值,最大值,中值,均值,標準差

Str(hw1_a)#查看數(shù)據(jù)并指出各個變量的形式

summary(hw1_a)#指出各個變量的形式,最小值,最大值,中值,均值

library(psych)

describe(hw1_a)#比summary更簡便的方法,可以直接讀取標準差等;但是,使用describe不可讀取 NA值, 可以嘗試使用 Hmisc包中 describe

描述型函數(shù)-R

# 連接

hw1_a %>%inner_join(hw1_b,by="ID")

hw1_a %>%left_join(hw1_b,by="ID")

hw1_a %>%right_join(hw1_b,by="ID")

hw1_a %>%full_join(hw1_b,by="ID")

inner_join<-inner_join(hw1_a,hw1_b,by=“ID”)#報告合并后的總行數(shù),178行

full_join<-full_join(hw1_a,hw1_b,by="ID")

(nrow(full_join))#報告合并后的總行數(shù),200行

>?length(full_join$ID)

#找出各個列的缺失值

i<-NA

a<-NA

for(i in 1:length(full_join[1,])){ a[i]<-sum(is.na(full_join[,i]))}

paste("缺失值是",a)

#缺失值總數(shù)

sum(is.na(full_join))

#刪除缺失值na.omit()

full_join1=filter(full_join,!is.na(full_join[2]))

full_join1=filter(full_join1,!is.na(full_join1[3]))

full_join1=filter(full_join1,!is.na(full_join1[4]))

full_join1=filter(full_join1,!is.na(full_join1[5]))

full_join1=filter(full_join1,!is.na(full_join1[6]))

full_join1=filter(full_join1,!is.na(full_join1[7]))

full_join1=filter(full_join1,!is.na(full_join1[8]))

sum(is.na(full_join1))

找出Income中的極端值并濾掉對應行的數(shù)據(jù)

quantile(hw1_a$Income,c(0.025,0.975))

hw1_a2=filter(hw1_a,Income>14168.81&Income<173030.92)

#使用dplyr進行數(shù)據(jù)轉(zhuǎn)換

arrange()

>arrange(hw1_a,Income)#默認升序

>arrange(hw1_a,desc(Income))#desc降序,NA排序一般最后

select()

>select(hw1_a,-(Years_at_Address:Income))#不要變量

>rename(hw1_a, In_come=Income)#改名

>select(hw1_a,Income,exerything())#把Income放在前面

拓例題1:

library(nycflights13)

view(flights)

#counts

(1)

not_cancelled <- flights %>%

filter(! is.na(dep_delay), !is.na(arr_delay))

(2)

not_cancelled %>%

group_by(year,month,day) %>%

summarize(mean=mean(dep_delay))

(3)

delays <- not_cancelled %>%

group_by(tailnum) %>%

summarize(delay=mean(arr_delay))

ggplot(data=delays,mapping=aes(x= delay))+

geom_freqpoly(binwidth=10) #freqpoly

(4)

delays <- not_cancelled %>%

group_by(tailnum) %>%

summarize(delay=mean(arr_delay,na.rm=TRUE),n=n()) #tailnum的次數(shù)

ggplot(data=delays,mapping=aes(x= n, y=delay))+

geom_point(alpha=1/10)

拓例題2:

#請按照價格的均值,產(chǎn)生新的變量price_new, 低于均值為“低價格”,高于均值為“高價格”。 同樣對市場份額也是,產(chǎn)生變量marketshare_new, 數(shù)值為“低市場份額”和“高市場份額”

price=data1$price

pricebar=mean(price)

price_new=ifelse(price>pricebar,“高價格”,”低價格”)

marketshare=data1$marketshare

marketsharebar=mean(marketshare)

marketshare_new=ifelse(marketshare>marketsharebar ,“高市場份額”,”低市場份額”)

data1=mutate(data1,price_new,marketshare_new)

#可視化

#將Income對數(shù)化

lninc<-log(hw1_a$Income)

#畫出直方圖和density curve密度曲線

hist(lninc,prob=T)

lines(density(lninc),col="blue")

#添加額外變量的辦法,在aes()中添加樣式 (color、size、alpha、shape)

ggplot(data=inner_join)+

geom_point(mapping = aes(x=Years_at_Employer,y= Income,alpha=Is_Default))

#按照Is_Default增加一個維度,使用明暗程度作為區(qū)分方式

ggplot(data=inner_join)+

geom_point(mapping = aes(x=Years_at_Employer,y= Income,

alpha=factor(Is_Default)))

#使用形狀作為另外一種區(qū)分方式

ggplot(data=inner_join)+

geom_point(mapping = aes(x=Years_at_Employer,y= Income,

shape=factor(Is_Default)))

可視化-R

?

?

拓展:

#將 flight1 表和 weather1 表根據(jù)共同變量進行內(nèi)連接,隨機抽取 100000 行數(shù)據(jù), 將生產(chǎn)的結(jié)果保存為 flight_weather。 (提示:sample_n()函數(shù),不用重復抽取)

flight_weather <- inner_join(flight1, weather1) %>%?sample_n(100000)

#從 flight_weather表中對三個出發(fā)機場按照平均出發(fā)延誤時間排降序,并將結(jié)果保留在 longest_delay表中。把結(jié)果展示出來

longest_delay<- flight_weather %>%

group_by(origin) %>%

summarize(delay=mean(dep_delay,na.rm=TRUE)) %>%

arrange(desc(delay))

#根據(jù)不同出發(fā)地(origin)在平行的 3 個圖中畫出風速 wind_speed(x 軸)和出發(fā) 延誤時間 dep_delay(y 軸)的散點圖。

ggplot(data= flight_weather) +

geom_point(mapping=aes(x=wind_speed,y=dep_delay))+

facet_grid(.~origin,nrow?= 3)?#按照class分類,分成3行

#根據(jù) flight_weather表,畫出每個月航班數(shù)的直方分布圖,x 軸為月份,y 軸是每個 月份航班數(shù)所占的比例。

ggplot(data=flight_weather)+

geom_bar(mapping=aes(x=month,y=..prop..,group=1))

#根據(jù) flight_weather表,畫出每個月航班距離的 boxplot 圖,x 軸為月份,y 軸為 航行距離, 根據(jù)的航行距離的中位數(shù)從低到高對 x 軸的月份進行重新排序

ggplot(data=flight_weather)+

geom_boxplot(mapping=aes(x=reorder(month,distance,FUN=median),y=distance))

線性回歸

#以Income作為因變量,Years at Employer作為自變量,進行OLS回歸

m1<-lm(Income~Years_at_Employer,data=hw1_a)

#通過***判斷顯著性

summary(m1)

#畫出擬合直線

ggplot(data= hw1_a)+

geom_point(aes(x=Income,y=Years_at_Employer))+

geom_abline(data= m1,col= "blue")

#證明擬合直線是最優(yōu)的

b0=runif(20000,-5,5)

b1=runif(20000,-5,5)

d<-NA

sum<-NA

n<-1

while(n<=20000){

for(i in 1:24){

d[i]<-(hw1_a $ Income[i]-b0[n]-b1[n]*hw2$ Years_at_Employer[i])^2}

sum[n]<-sum(d)

n<-n+1

}

resi=m1$residuals

resi2=sum(resi^2)

check=sum(as.numeric(sum<resi2))

check

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374