R014 變量處理常用函數(shù)

1.變量轉(zhuǎn)換
  • is.datatype():判斷變量種類
  • as.datatype():轉(zhuǎn)換變量類型
    其中嫩挤,datatype可以為numeric场斑,character刻两,vector赖草,matrix,data.frame乡翅,factor鳞疲,logical等
    可以通過methods(is),methods(as)查看R中的全部is/as函數(shù)列表
  • factor():將一個向量轉(zhuǎn)化為一個因子
2.變量的重命名
  • edit()蠕蚜,fix()調(diào)用交互式編輯器尚洽,單擊變量名進(jìn)行修改
  • names()函數(shù)
    names(object),則表示獲取object的名字
    names(object) <- Value靶累,則表示將變量名修改為Value
  • renames()腺毫,首次使用需要安裝plyr包
    renames(dataframe,c(oldname="newname",oldname="newname",……))
4.變量的缺失值
  • is.na() 用于判斷對象的元素中是否有缺失值,如返回值為TRUE挣柬,則無缺失潮酒,返回FALSE,則有缺失值
  • 重編碼條件元素為NA邪蛔,如下圖R代碼及輸出值急黎,其中na.rm=TRUE表示在計(jì)算之前移除NA,na.omit()函數(shù)表示移除所有含NA值的觀測
> x <- seq(1,30,2)
> x
 [1]  1  3  5  7  9 11 13 15 17 19 21 23 25 27 29
> x[x>=20] <- NA
> x
 [1]  1  3  5  7  9 11 13 15 17 19 NA NA NA NA NA
> y <- na.omit(x)
> y
 [1]  1  3  5  7  9 11 13 15 17 19
attr(,"na.action")
[1] 11 12 13 14 15
attr(,"class")
[1] "omit"
> sum(y)
 [1] 100
> sum(x,na.rm = T)
[1] 100
4.向量處理

length(x):x中元素的個數(shù)
dim(x):查看變量的維數(shù);重新設(shè)置的維數(shù)勃教,例如dim(x)=c(3,2)
dimnames(x):重新設(shè)置對象的名稱
nrow(x):行的個數(shù)
ncol(x):列的個數(shù)
class(x):得到或設(shè)置x的類淤击;class(x)<-c(3,2)
unclass(x):刪除x的類
attr(x,which):得到或設(shè)置x的屬性which
attributes(obj):得到或設(shè)置obj的屬性列表
fix,edit:對數(shù)據(jù)框數(shù)據(jù)進(jìn)行表格形式的編輯

5.數(shù)據(jù)選取和操作

which.max(x):返回x中最大元素的指標(biāo)
which.min(x):返回x中最小元素的指標(biāo)
rev(x):翻轉(zhuǎn)x中所有的元素
sort(x):升序排列x中的元素;降序排列使用:rev(sort(x))
cut(x,breaks):將x分割成為幾段(或因子)故源;breaks為段數(shù)或分割點(diǎn)向量
match(x,y):返回一個和x長度相同且和y中元素相等的向量不等則返回NA
which(x==a):如果比較操作為真(TRUE),返回向量x的指針
choose(n,k):組合數(shù)的計(jì)算
na.omit(x):去除缺失值(NA)(去除相關(guān)行如果x為矩陣或數(shù)據(jù)框)
na.fail(x):返回錯誤信息污抬,如果x包含至少一個NA
unique(x):如果x為向量或數(shù)據(jù)框,返回唯一值
table(x):返回一個由x不同值個數(shù)組成的表格(通常用于整數(shù)或因子)绳军,即頻數(shù)表
subset(x,...):根據(jù)條件(...選取x中元素印机,如x$V1<10);如果x為數(shù)據(jù)框,選項(xiàng)select使用負(fù)號給出保留 或去除的變量 subset(x, subset, select, drop = FALSE, ...)
sample(x,size):不放回的隨即在向量x中抽取size個元素,選項(xiàng)replace=TRUE允許放回抽取
prop.table(x,margin=):根據(jù)margin使用分?jǐn)?shù)表示表格,wumargin時(shí)删铃,所有元素和為

6.R數(shù)據(jù)的創(chuàng)建與索引
6.1. 向量的操作

c(...)耳贬,為concatenate的縮寫,向量的創(chuàng)建
from:to :產(chǎn)生一個序列猎唁,":"有較高的優(yōu)先級咒劲;1:4+1得到"2,3,4,5"
seq() 產(chǎn)生一個向量序列,seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),length.out = NULL, along.with = NULL, ...)
rep() 重復(fù)一個對象诫隅,rep(x,times)腐魂,x是要重復(fù)的對象(例如向量c(1,2,3)),times為對象中每個元素重復(fù)的次數(shù),如times=c(9,7,3)就是將x向量的1重復(fù)9次逐纬,2重復(fù)7次蛔屹,3重復(fù)3次。

6.2. 數(shù)組(包含矩陣豁生、向量)創(chuàng)建

matrix(...):創(chuàng)立矩陣
array(x,dim=...):產(chǎn)生由x組成的數(shù)組
data.frame(...):創(chuàng)建數(shù)據(jù)框兔毒,變量可能被命名或未被命名
list(...):創(chuàng)建一個由變量組成的列表,變量可能被命名甸箱;
factor(x,levels=) 把向量x編碼稱為因子
rbind(...)以行的形式組合矩陣育叁,數(shù)據(jù)框,或其它
cbind(...)以列的方式組合芍殖,其他同rbind()

6.3. 數(shù)據(jù)切割和分離
  • 向量指標(biāo)
    x[n]:第n個元素
    x[-n]:除了第n個元素的x
    x[1:n]:前n個元素
    x[-(1:n)]:第n+1至最后的元素
    x[c(1,4,2)]:指定元素
    x["name"]:名為"name"的元素
    x[x>3]:所有大于3的元素
    x[x>3 & x<5]:區(qū)間(3,5)的元素
    x[x%in%c("a","and","the")]:給定組中的元素
  • 列表指標(biāo)
    x[n]:列表顯示元素n
    x[n]:列表的第n個元素
    x["name"]:名為"name"的元素
    x$name :同上
  • 矩陣指標(biāo)
    x[i,j]:下表為(i,j)的元素
    x[i,]:第i行
    x[,j]:第j列
    x[,c(1,3)]:第1和3列
    x["name",]:名為"name"的行
    x$name :同上
  • 數(shù)據(jù)框指標(biāo)
    x["name"]:列明為"name"的列
    x$name :同上
6.4. R數(shù)學(xué)函數(shù)
  • 泛用函數(shù)apply:
    用法:apply(X, MARGIN, FUN, ...)豪嗽,X為一數(shù)組array,當(dāng)然包括矩陣豌骏, MARGIN為一向量龟梦,它指定函數(shù)要作用的下標(biāo)。例如對一個矩陣來說窃躲,1代表行计贰,2代表列,而c(1,2)代表行和列蒂窒。FUN作用于數(shù)組array上的函數(shù)躁倒。此函數(shù)可以是自己編寫的赎婚。當(dāng)X時(shí)一個data.frame時(shí),而不是array時(shí)樱溉,函數(shù)apply就會強(qiáng)制性的通過as.matrix或as.array將其轉(zhuǎn)化為maxtrix或array。
    例子## Compute row and column sums for a matrix:
    x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
    col.sums <- apply(x, 2, sum)
    row.sums <- apply(x, 1, sum)
  • 基本符號:
    加(+)纬凤,減(-) 福贞,乘 (*) ,除(/)停士,冪(^)
  • 三角函數(shù)與其他基本數(shù)學(xué)函數(shù)
    sin, cos, tan挖帘,asin, atan,atan2,log,log10,exp,
  • 其他
    max(x):當(dāng)x為一向量時(shí),返回x中最大的元素恋技。當(dāng)x為矩陣時(shí)拇舀,返回矩陣中所有元素的最大值。當(dāng)要返回矩陣x每行或每列的最大值時(shí)蜻底,可以使用apply函數(shù)(apply(X, MARGIN, FUN, ...))骄崩,其中MARGIN表示要作用的方式,1代表行薄辅,2代表列要拂,c(1,2)代表行和列;例如apply(data,MARGIN=1,max)
    min(x):返回x中最小的元素站楚,同max
    rev(x):翻轉(zhuǎn)x中的所有元素
    sort(x):升序排列x中的元素脱惰;降序排列使用rev(sort(x)),要得到排列的小標(biāo)用order()
    choose(n,k):組合數(shù)計(jì)算
    which():返回滿足條件的下表
    sample(x,size):不放回的隨機(jī)在向量x中抽取size個元素選項(xiàng),replace+TRUE允許放回抽樣
    rank():計(jì)算向量的秩
    range(x):返回c(min(x),max(x))
    sum(x):x中各元素的加和
    diff(x):向量x的差分
    prod(x):x中元素的連乘積
    mean(x):x的均值
    median(x):x的中位數(shù)
    quantile(x,probs=):滿足給定概率的樣本分位數(shù)(默認(rèn)為0,0.25,0.75,1)
    weight.mean(x,w):加權(quán)平均窿春,w即為weight,即權(quán)值拉一。
    var(x):向量x的樣本方差;如果x是矩陣或數(shù)據(jù)框旧乞,協(xié)方差矩陣將被計(jì)算
    cor(x):如果x是矩陣或數(shù)據(jù)框蔚润,相關(guān)系數(shù)矩陣將被計(jì)算
    sd(x):x的標(biāo)準(zhǔn)差;sd(x)=sqrt(var(x))
    var(x,y) or cov(x,y):x和y間的協(xié)方差良蛮;如果x,y為矩陣或數(shù)據(jù)框抽碌,返回x和y各列的協(xié)方差
    cor(x,y):x和y的線性相關(guān)系數(shù);或者相關(guān)矩陣决瞳,如果x和y為矩陣或者數(shù)據(jù)框
    round(x,n):x的約數(shù)货徙,精確到n位
    log(x,base):計(jì)算x以base為基的對數(shù),默認(rèn)基為exp(1)
    scale(x):如果x是一個矩陣皮胡,則中心化和標(biāo)準(zhǔn)化數(shù)據(jù)痴颊;若只標(biāo)準(zhǔn)化數(shù)據(jù),則使用選項(xiàng)center=FALSE屡贺,若只 中心化使用scale=FALSE(默認(rèn)center=TRUE, scale=TRUE)
    pmin(x,y,...):x,y相比較小者蠢棱,組成新的向量
    pmax(x,y,...):x,y相比較大者锌杀,組成新的向量
    Re(x):復(fù)數(shù)的實(shí)部
    Im(x):復(fù)數(shù)的虛部
    abs(x):絕對值
    Arg(x):復(fù)數(shù)角度(in radians)
    Conj(x):共軛復(fù)數(shù)
    fft(x):數(shù)組x的快速傅里葉變換
    mvfft(x):矩陣x的每一列的傅里葉變換
    factorial():計(jì)算n!
    cumsum():cumulative sums
    cumprod():cumulative products
    D(expression(exp(x^2)),"x") :求導(dǎo)
    integrate(function(x) x^2,0,1):積分
    na.rm=FALSE:指定是否移除缺失值(NA)
6.5.R字符操作

str_c(..., sep = "", collapse = NULL):轉(zhuǎn)化為字符后連接向量;seq=為分割界限(一個空格為默認(rèn))泻仙;選擇collapse=可以分 割"collapse"結(jié)果
str_sub(string, start = 1L, end = -1L) :提取字符向量的子字段糕再;
str_to_lower(x):轉(zhuǎn)化為lowercase
str_to_upper(x):轉(zhuǎn)化為uppercase
x%in%table:table中匹配x元素位置組成的向量,返回值為邏輯值
str_match(string, pattern):pattern匹配字符,并返回對應(yīng)的字符string
str_extract: 從字符串中提取匹配字符
str_extract(shopping_list, "\d") # 提取數(shù)字 #提取匹配模式的第一個字符串
str_extract(shopping_list, "[a-z]+") #提取字母
str_detect(string, pattern) :檢測函數(shù)玉转,用于檢測字符串中是否存在某種匹配模式
str_detect(val, "^a"):檢查字符串向量突想,是否以a為開頭
nchar(x):字符的個數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市究抓,隨后出現(xiàn)的幾起案子猾担,更是在濱河造成了極大的恐慌,老刑警劉巖刺下,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绑嘹,死亡現(xiàn)場離奇詭異,居然都是意外死亡橘茉,警方通過查閱死者的電腦和手機(jī)工腋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畅卓,“玉大人夷蚊,你說我怎么就攤上這事∷杞椋” “怎么了惕鼓?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唐础。 經(jīng)常有香客問我箱歧,道長,這世上最難降的妖魔是什么一膨? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任呀邢,我火速辦了婚禮,結(jié)果婚禮上豹绪,老公的妹妹穿的比我還像新娘价淌。我一直安慰自己,他們只是感情好瞒津,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布蝉衣。 她就那樣靜靜地躺著,像睡著了一般巷蚪。 火紅的嫁衣襯著肌膚如雪病毡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天屁柏,我揣著相機(jī)與錄音啦膜,去河邊找鬼有送。 笑死,一個胖子當(dāng)著我的面吹牛僧家,可吹牛的內(nèi)容都是我干的雀摘。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼八拱,長吁一口氣:“原來是場噩夢啊……” “哼届宠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝠嘉,沒想到半個月后跳座,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡每聪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年旦棉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片药薯。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡绑洛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出童本,到底是詐尸還是另有隱情真屯,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布穷娱,位于F島的核電站绑蔫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏泵额。R本人自食惡果不足惜配深,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嫁盲。 院中可真熱鬧篓叶,春花似錦、人聲如沸羞秤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瘾蛋。三九已至嗦董,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瘦黑,已是汗流浹背京革。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工奇唤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匹摇。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓咬扇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親廊勃。 傳聞我的和親對象是個殘疾皇子懈贺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345