《r語言實戰》菜鳥學習筆記(一)


打算學習一下r語言(windows下載),不知道從什么地方開始學習,加上本人的數理統計基礎比較薄弱,所以就漫無目的的從網上找教程。

其實我逛的最多的網站還是知乎,讀了好多很好的答案后,我選擇了兩本書,《153分鍾學會r》《r語言實戰》。前者大概掃了一眼,不太適合邊看書邊敲代碼(我個人比較喜歡這種),所以后者就比較適合我,這套書還是比較適合菜鳥看的,我還看過《集體智慧編程》,很不錯。

下面開始了第一段程序。(博客園沒有r語言選項,只好用plain txt了)

age <- c(1,3,5,2,11,9,3,9,12,3)
weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
mean(weight)
plot(age,weight)
q()

代碼很簡單,不多說了。

這段代碼要注意的地方有:正斜杠,小數點后三位,均勻分布。

setwd("F:/R Code") #如果不存在需要使用dir.create()創建目錄
options()
options(digits=3)
x<-runif(20)
#摘要統計量 summary(x)
#直方圖 hist(x) savehistory() save.image() q()

接下來就要討論r語言的數據結構了

r語言包含了4中數據結構:向量,矩陣,數組和數據框。

1.向量是一維的

a <- c(1,2,5,3,6,-2,4)

2.矩陣是二維的

cells <- c(1,26,24,68)
rnames <- c("R1","R2")
cnames <- c("C1", "C2")
mymatrix <- matrix(cells,nrow=2, ncol=2, byrow=TRUE,  
    dimnames=lilst(rnames,cnames)) #按行填充

3.數組可以是多維的

dim1 <-c("A1","A2")
dim2 <- c("B1","B2","B3")
dim3 <- c("C1","C2","C3","C4")
#array(vector, dimanesions,dimnames)
z <- array(1:24, c(2,3,4), dimnames=list(dim1,dim2,dim3))

4.數據框 這個就是大雜燴了

patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c("Type1", "Type2", "Type1", "Type1")
status <- c("Poor","Improved", "Excellent", "Poor")
patientdata <- data.frame(patientID, age, diabetes, status)

  取數據框中的某一個元素:patientdata$age,如果不想每一次都輸入patientdata$,可以使用attach() detach()或者單獨使用函數with()來簡化代碼。

#概要的統計數據
summary(mtcars$mpg)
#作圖
plot(mtcars$mpg, mtcars$disp)
plot(mtcars$mpg, mtcars$st)

#以上代碼等同於下面的代碼
attach(mtcars)
  summary(mpg)
  plot(mpg, disp)
  plot(mpg, wt)
detach(mtcars)

  然后使用detach()將數據框從搜索路徑中移除。

mpg <- c(25, 36, 47)
attach(mtcars)
#attention 原始對象用於優先權
plot(mpg, wt)
mpg

 上面說的是attach,接下來看看with怎么用

with(mtcars, {
    summary(mpg, disp, wt)
    plot(mpg, disp)
    plot(mpg, wt)
})

with {} 之間的語句都是針對數據框mtcars的,所以這樣就不用擔心上面的名字沖突的問題了,而with的最大問題是{}內的操作都是局部的,有點像函數的內部變量,傳遞不出去,看個例子

with(mtcars, {
    stats <- summary(mpg)
    stats
})
#下面這句話將產生錯誤(Error:object 'stats' not found)
stats

但是這種缺點可以克服嗎?使用<<-賦值就可以了。不知道R語言為什么會有這樣的設計。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM