文章標題

R
操作數據框的時候,在每個變量名前都鍵入一次數據框名稱(eg: dataframe) dataframe$ 可能會讓人生厭,所以不妨走一些捷徑。可以聯合使用函數attach()和detach()函數或單獨使用with()函數來簡化代碼。
- attach() 和 detach()
attach() 可將數據框添加到R的搜索路徑中。
eg: 有一個數據框dataframe有兩列,一列名爲name,第二列名爲age

summary(dataframe$age)
plot(dataframe$name,dataframe$age)

可簡化代碼爲:

attach(dataframe)
summary(age)
plot(name,age)
detach(dataframe)

函數detach()將數據框從搜索路徑中移除,值得注意的是,detach()並不會對數據框本身做任何處理。這句可以省略的,但其實它應當被例行的放入代碼中,因爲這是一個好的編程習慣。
當名稱相同的對象不止一個時,這種方法的侷限性就非常明顯。即:在數據框被綁定前,若環境中已經有一個與列名同名的對象,在這種情況下,原始對象將取得優先權。任何情況下,都要當心那些告知你某個對象已被屏蔽(masked)的警告。
使用with()函數可取代attach()和detach()兩個函數

with(dataframe,{
       summary(age)
       plot(name,age)
})

with()函數的侷限性在於,賦值僅僅在此函數括號內生效,爲了避免,可使用如下代碼:

with(dataframe,{
       summary <<-summary(age)
       plot <<- plot(name,age)
})
  • R中基本的數學函數
abs()   取絕對值
sqrt()  平方根,與x^(0.5)等價
ceiling()  不小於x的最小整數
floor()  不大於x的最大整數
trunc()  向0的方向截取的x中的整數部分
round(x,digits=n)x舍入爲指定位的小數
signif(x,digits=n)x舍入爲指定的有效數字位數
log(x)  自然對數
log10(x)  常用對數   
log(x,base=n)xn爲底的對數
exp(x)  指數函數
  • R中常用統計函數
 mean(x)   平均數
 median(x)  中位數
 sd(x)   標準差
 var(x)   方差
 quantile(x,probs)   求中位數  eg.   quantile(x,c(.3,.84))   #求x的30%和84%分位點
 scale(x,center=TRUE,scale=TRUE)  爲數據對象x按列進行中心化(center=TRUE)或標準化(center=TRUE,scale=TRUE

-R中常用字符處理函數

nchar(x)  計算x中的字符數量
substr(x,start,stop)  提取或者替換一個字符向量的子串
grep(pattern, x , ignore.case = FALSE , fixed=FALSE)  在x中搜索某種模式。若fixed=FALSE,則pattern爲一個正則表達式,若fixed=TRUE,則pattern爲一個文本字符串。返回值爲匹配的下標
sub(pattern , replacement , x , ignore.case=FALSE , fixed=FALSE)  在x中搜索pattern,並以文本replacement將其替換,若fixed=FALSE,則pattern爲一個正則表達式。若fixed=TRUE,則pattern爲一個文本字符串 
eg. sub("\\s",".","Hello There")  返回值爲Hello.There   #注意,"\s" 是一個用來查找空白的正則表達式,使用"\\s"而不是"\"的原因是,後者是R中的轉義字符
strsplit(x,split,fixed=FALSE)   在split處分割字符向量x中的元素,若fixed=FALSE,則pattern爲一個正則表達式。若fixed=TRUE,則pattern爲一個文本字符串
eg. y <- strsplit("abc",'')  將返回一個含有一個成分、三個元素的列表,包含的內容爲"a","b","c"   ##對付這樣的list,取其元素最簡單的辦法  unlist(y)[2]
paste("x1","x2",...,sep='')
eg. paste("Today is",date())  返回值爲“Today is Thu Jun 25 14:17:32 2011”
toupper(x)   大寫轉換
tolower(x)    小寫轉換
  • R其他函數
  length(x)    對象x的長度
  seq(from,to,by)  生成一個序列
  rep(x,n)   將x重複n次
  cut(x,n)   將連續變量x分割爲有着n個水平的因子,使用選項ordered_result=TRUE以創建一個有序型因子
  pretty(x,n)   創建美觀的分割點。通過選取n+1個等艱鉅的取整值,將一個連續型變量x分割爲n個區間,繪圖中常用。
  cat(...,file="myfile",append=FALSE)   連接...中的對象,並將其輸出到屏幕上或文件中(如果聲明瞭一個的話)   eg. firstname <- c("Jane")    cat("Hello",firstname,"\n")

Quotes of R

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章