R教材4 高階資料管理
阿新 • • 發佈:2018-11-26
- 數值與字元處理函式
-
- 數學函式,物件非單個數值時,會作用於每個數值
- 絕對值abs()
- 平方根sqrt()
- 舍入小數round(,digits=)
- 對數
- log(x,base=n)以n為底
- log()以e為底
- log10()以10為底
- 指數exp(x),以e為底指數
- 統計函式na.rm=T,計算時移除NA;trim=0.05,去除了前後5%的資料再計算,當沒有足夠的資料時,不會去掉極值
- 均值mean()
- 標準差sd()
- 方差var()
- 分位數quantile(x,probs=c()),probs分位點
- 中心化、標準化scale(x,center=T,scale=T),標準化即z分數
- 概率函式
- 不同函式的字首
- 密度函式d,即分佈的y值
- 分佈函式p,求面積,p-(z),標準分佈下的面積
- 分位數函式q,q-(0.9分位點,……),某分佈下的分位點0.9等
- 生成隨機數r
- 分佈
- 指數分佈exp
- 對數分佈logis
- 正態分佈norm
- t分佈t
- 均勻分佈unif
- 設定隨機數種子
- set.seed(x)……,x種子下的隨機函式結果
- 不同函式的字首
- 字元處理函式
- 字元數量nchar()
- 提取或替換字元substr(物件,from,to)
- 在X中搜索模式grep(pattern,x,fixed=F),fixed=F模式為正則表示式,T模式為文字字串
- 連線字串paste(……,sep=""),sep每個連線的分隔
- toupper、tolower,大小寫轉換
- 其他函式
- 生成序列seq(from,to,by)
- 重複rep(x,n)
- 將連續變數分割為n個水平的因子cut(x,n),ordered_result=T建立有序因子
- 建立美觀的分割點pretty(x,n),選取n+1個等間距的取整值
- 連線……中的物件,並將其輸出到螢幕或檔案上cat(……,file="",append=F),cat輸出連線物件會對每個物件用空格分開,甚至是.,所以作為句號必須在前面加上\b
- 函式用於矩陣和資料框:
- 針對維度apply(x,margin,FUN),margin=1表示行,2表示列
- split(物件,分組屬性),返回是列表;可以多重分組,用list()來標明
- apply:lapply、sapply、tapply只能針對一個屬性的分組進行函式
- apply(X, MARGIN, FUN, ...),x是陣列、矩陣(資料框);margin=1|2,對行|列操作;fun函式
- lapply(split,FUN)結合split使用,lapply針對列表中的每個元素使用fun,可以沒有margin,返回列表
- sapply同上,返回的是更緊湊的格式
- tapply(物件,分組屬性,FUN)簡化了split函式,返回列表
- 控制流
- for(var in seq(from,to,by)) {}
- while(cond) {}
- 條件執行
- if(cond) …… else ……
- ifelse(cond,T-stat,F-stat),R語言特有,輸出結果為向量,對每個向量中的元素進行判斷
- switch(i,……),……是i的可能值繫結的語句
- 使用者自編函式最好有一個表示式來捕獲錯誤輸入;所有的輸出只能在函式中才有意義,所以用return
- 整合與重構
- 轉置t()
- 整合aggregate(x, by, FUN, ..., ),x可以是多個屬性的資料,by分組依據(相同分組屬性值為一組),FUN是用來計算新觀測中的值,by必須是list形式by=list(),by中的變數可以可以自定義名稱;或者aggregate(a~b, x, FUN, ..., ),b為標識,a為整合量
- reshape2包
- 融合melt(x,id=c()),id即主鍵,結果是主鍵下的屬性和屬性值
- 重鑄dcast(melt,formula,fun.aggregate),melt為已融合資料,formula為結果結構row1,……~col1,……,fun為資料整合函式(可選的)
- 數學函式,物件非單個數值時,會作用於每個數值