R語言列篩選的方法select實(shí)例詳解
前言
我們知道,R語言學(xué)習(xí),80%的時(shí)間都是在清洗數(shù)據(jù),而選擇合適的數(shù)據(jù)進(jìn)行分析和處理也至關(guān)重要,如何選擇合適的列進(jìn)行分析,你知道幾種方法?
如何優(yōu)雅高效的選擇合適的列,讓我們一起來看一下吧。
1. 數(shù)據(jù)描述
數(shù)據(jù)來源是我編寫的R包learnasreml
中的fm
數(shù)據(jù)集。
r$> library(learnasreml) r$> data(fm) r$> head(fm)
我們的目的:
提取fm的TreeID,Rep,dj,dm,h3,并重命名為:ID, F1, y1 , y2, y3
2. 使用R語言默認(rèn)的方法:列選擇
這一種,當(dāng)然是簡單粗暴的方法,想要哪一列,就把相關(guān)的列號(hào)提取出來,形成一個(gè)向量,進(jìn)行操作即可。比如
r$> d1 = fm[,c(1,3,6,7,11)] r$> head(d1) TreeID Rep dj dm h3 1 80001 1 0.334 0.405 239 2 80002 1 0.348 0.393 242 3 80004 1 0.354 0.429 180 4 80005 1 0.335 0.408 301 5 80008 1 0.322 0.372 271 6 80026 1 0.359 0.450 258 r$> names(d1) = c("ID","F1","y1","y2","y3") r$> head(d1)
結(jié)果:
缺點(diǎn):
這種方法,需要找到性狀所在的列號(hào),然后還要重命名,比較麻煩。
而且,后面如果想要根據(jù)列的特征進(jìn)行提取時(shí)(比如以h開頭的列,比如屬性為數(shù)字或者因子的列等等),就不能實(shí)現(xiàn)了。
這就要用到tidyverse的函數(shù)了,select
,rename
,都是一等一的良將。
3. tidyverse的rename函數(shù)
代碼:
a2 = fm %>% rename(ID=TreeID, F1 = Rep, y1 = dj, y2 = dm, y3 = h3)
這里,rename
只是單獨(dú)的修改名稱,并沒有提取出來。
還要使用select
進(jìn)一步的提?。?/p>
4. tidyverse的select函數(shù)
如果使用select
函數(shù),一行代碼就可以搞定:
a1 = fm %>% select(ID=TreeID, F1 = Rep, y1 = dj, y2 = dm, y3 = h3)
5. select函數(shù)注意事項(xiàng)
常見的坑:
注意,MASS包中也有select函數(shù),而且優(yōu)先級(jí)更高,如果你載入了MASS包,select就不能使用了。
哪怕你再次載入tidyverse包,也不行:
載入dplyr包,也不行:
MASS就是這么豪橫。
像這種情況,解決辦法有兩種:
5.1 絕對(duì)引用函數(shù)
即使用select時(shí),要用dplyr::select
a3 = a2 %>% dplyr::select(ID,F1,y1,y2,y3)
這樣也比較麻煩。
5.2 放到環(huán)境變量中
推薦的方法:
r$> select = dplyr::select r$> a3 = a2 %>% select(ID,F1,y1,y2,y3)
推薦在載入包時(shí),將下面代碼放在開頭,就可以肆無忌憚的應(yīng)用select了,畢竟,環(huán)境變量的優(yōu)先級(jí)是第一位的。
library(tidyverse) select = dplyr::select
6. 提取h開頭的列
這里,用starts_with
,會(huì)匹配開頭為h的列。
其它還有contains,匹配包含的字符,還有end_with,匹配結(jié)尾的字符。
應(yīng)有盡有,無所不有。
re1 = fm %>% select(starts_with("h"))
7. 提取因子和數(shù)字的列
匹配數(shù)字的列:
re2 = fm %>% select_if(is.numeric)
匹配為因子的列:
re3 = fm %>% select_if(is.factor)
總結(jié)
到此這篇關(guān)于R語言列篩選的方法select的文章就介紹到這了,更多相關(guān)R語言列篩選select內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語言繪制corrplot相關(guān)熱圖分析美化示例及詳細(xì)圖解
這篇文章主要為大家介紹了R語言corrplot相關(guān)熱圖分析美化示例及詳細(xì)圖解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06R語言初學(xué)者的一些常見報(bào)錯(cuò)指南
在使用R的時(shí)候,偶爾也會(huì)遇到一些糟心的報(bào)錯(cuò),本文把運(yùn)行過程中遇到的一些報(bào)錯(cuò)和解決方案進(jìn)行總結(jié)歸納,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解
這篇文章主要介紹了R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03