第4章 基本數(shù)據(jù)管理

《R語言實戰(zhàn)》筆記系列


本章學習大綱

1.操縱日期和缺失值

2.熟悉數(shù)據(jù)類型和轉換

3.變量的創(chuàng)建和重編碼

4.數(shù)據(jù)集的排序访诱、合并與取子集

5.舍棄(剔除)變量?

第一部分?操縱日期和缺失值

缺失值

在R中,缺失值以符號NA(not available往枷,不可用)表示。可以用函數(shù)is.na()檢查缺失值是否存在会傲。需要注意兩點,一是缺失值被認為是不可比較的拙泽,意味著不能用比較運算符來檢測缺失值的存在淌山。二是R并不將無限的或者不可能出現(xiàn)的數(shù)值標記為缺失值。正無窮和負無窮分別用Inf和-Inf來標記顾瞻。不可能的值用NaN來標記泼疑。若要識別這些數(shù)值,需要用is.infinite()或is.nan()來識別荷荤。

用is.na()檢查缺失值的結果

重編碼某些值為缺失值

有些數(shù)據(jù)并沒有直接將缺失值標記為NA退渗,可能用某個與實際不符合的數(shù)據(jù)填充,比如說年齡為999蕴纳。所以需要我們分析數(shù)據(jù)集前將這些數(shù)據(jù)表示為缺失值会油,否者會影響數(shù)據(jù)分析。需要用重編碼來完成這項工作,例如:leadership$age(leader$age==999)<-NA

在分析中排除缺失值

凡是含有缺失值的算術表達式和函數(shù)的計算結果均為缺失值古毛》妫可以用na.rm=TRUE選項,在計算之前移除缺失值并使用剩余的值進行計算稻薇。也可以通過函數(shù)na.omit()直接移除所有含有缺失值的觀測嫂冻。

是否移除缺失值的不同結果

日期值

日期值通常以字符串的形式輸入到R中,然后轉化為以數(shù)值形式存儲的日期變量塞椎。函數(shù)as.Date()用于執(zhí)行該轉化桨仿,一般形式是as.Date(x,"input-format"),其中x是字符型數(shù)據(jù),input-format則是用于讀入日期的適當格式


日期變量和字符型的區(qū)別
上述代碼輸出的結果

日期值的默認輸入格式是yyy-mm-dd案狠。將默認格的字符型數(shù)據(jù)改成對應的格式服傍,需要用as.Date()如圖所示暇昂。

將日期格式改成mm/dd/yyy

除此之外,Sys.Date()可以返回當天的日期伴嗡,date()可以返回當前的日期和時間急波。也可以用函數(shù)format(x,format="output-format"來輸出指定格式的日期值瘪校,并且可以提取日期值中的某些部分澄暮。format()接受算數(shù)運算的,也可以用difftime()來計算時間間隔阱扬,并以星期泣懊、天猜谚、時哟楷、分、秒來表示仿野。

其他日期相關函數(shù)的應用

也可以用as.character()將日期值轉換為字符型窃蹋。進行轉換后卡啰,就可以使用一系列字符處理函數(shù)處理數(shù)據(jù)(如取子集、替換警没、連接等)匈辱。

日期的格式

第二部分 熟悉數(shù)據(jù)類型和轉換

類型轉換函數(shù)匯總表

第三部分?變量的創(chuàng)建和重編碼

創(chuàng)建新變量常用的語句是 變量名<-表達式,經(jīng)常表達式包含以下的算術運算符杀迹。

算術運算符

創(chuàng)建新變量并整合到數(shù)據(jù)集中亡脸,需要用transform()函數(shù)。

函數(shù)transform()的應用

變量的重編碼是指根據(jù)同一變量和/或其他變量的現(xiàn)有值創(chuàng)建新值得過程树酪∏衬耄可以將一個連續(xù)型變量修改成一組類別值;也可以將誤編碼的值替換成正確值续语;或者將一組分數(shù)線創(chuàng)建一個表示及格垂谢、不及格的變量。要重編碼數(shù)據(jù)绵载,可以用R的邏輯運算符埂陆。

R的邏輯運算符表

可以用語句variable[condition]<-expression進行重編碼苛白,意思是將僅在condition的值為TRUE時執(zhí)行賦值娃豹。

可以通過函數(shù)names()對變量進行重命名。如names(leadership)[2]<-"testDate"

第四部分?數(shù)據(jù)集的排序购裙、合并與取子集

數(shù)據(jù)集的排序

可以用order()函數(shù)來對一個 數(shù)據(jù)框進行排序懂版。

同性別中,按年齡降序排列

數(shù)據(jù)集的合并

向數(shù)據(jù)框添加列:要橫向合并兩個數(shù)據(jù)集躏率,用merge()函數(shù)躯畴。多數(shù)情況下民鼓,兩個數(shù)據(jù)框是通過一個或多個共有變量進行聯(lián)結的(即內(nèi)聯(lián)結,inner join)例如total<-merge(dataframeA,dataframeB,by="ID").如果直接橫向合并兩個矩陣或數(shù)據(jù)框蓬抄,并且不需要一個公共索引丰嘉,可以用cbind()函數(shù),但必須保證兩個對象有著相同的行數(shù)嚷缭。例如:total<-cbind(A饮亏,B)

向數(shù)據(jù)框添加行:用rbind()函數(shù)。兩個數(shù)據(jù)框必須有相同的變量阅爽,如果不相同路幸,應該對其中一個數(shù)據(jù)框刪除多余變量或?qū)α硪粋€添加新的變量標記為NA。兩者數(shù)據(jù)框的順序不一定要相同付翁。

數(shù)據(jù)集取子集

第二章已經(jīng)提及過简肴,通過dataframe[row indices,colum indices]來訪問的。

可以將行下留空(百侧,)表示默認選擇所有行

第五部分 選入和舍棄(剔除)變量

舍棄變量的核心思想其中之一就是將變量邏輯性變?yōu)镕ALSE砰识,則不會顯示參與運算。有以下三種辦法佣渴,最后一種會損壞原數(shù)據(jù)仍翰。

舍棄變量的三種辦法

用subset()函數(shù)是選擇變量和觀測最簡單的辦法。

subset()函數(shù)的應用

用sample()函數(shù)可以讓你從數(shù)據(jù)集中(有放回或無放回地)抽取大小為n的一個隨機樣本观话。函數(shù)第一個參數(shù)代表是由要從中抽樣的元素組成的向量予借,第二個參數(shù)是要抽取的元素數(shù)量,第三個參數(shù)代表無放回抽樣(FALSE)频蛔。

隨機抽樣用sample()函數(shù)的結果
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末灵迫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晦溪,更是在濱河造成了極大的恐慌瀑粥,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件三圆,死亡現(xiàn)場離奇詭異狞换,居然都是意外死亡,警方通過查閱死者的電腦和手機舟肉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門修噪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人路媚,你說我怎么就攤上這事黄琼。” “怎么了整慎?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵脏款,是天一觀的道長围苫。 經(jīng)常有香客問我,道長撤师,這世上最難降的妖魔是什么剂府? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮剃盾,結果婚禮上周循,老公的妹妹穿的比我還像新娘。我一直安慰自己万俗,他們只是感情好湾笛,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闰歪,像睡著了一般嚎研。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上库倘,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天临扮,我揣著相機與錄音,去河邊找鬼教翩。 笑死杆勇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的饱亿。 我是一名探鬼主播蚜退,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼彪笼!你這毒婦竟也來了钻注?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤配猫,失蹤者是張志新(化名)和其女友劉穎幅恋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泵肄,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡捆交,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腐巢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片品追。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖系忙,靈堂內(nèi)的尸體忽然破棺而出诵盼,到底是詐尸還是另有隱情,我是刑警寧澤银还,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布风宁,位于F島的核電站,受9級特大地震影響蛹疯,放射性物質(zhì)發(fā)生泄漏戒财。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一捺弦、第九天 我趴在偏房一處隱蔽的房頂上張望饮寞。 院中可真熱鬧,春花似錦列吼、人聲如沸幽崩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慌申。三九已至,卻和暖如春理郑,著一層夾襖步出監(jiān)牢的瞬間蹄溉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工您炉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柒爵,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓赚爵,卻偏偏與公主長得像棉胀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冀膝,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 我們的掌握目標: ●操縱日期和缺失值 ●熟悉數(shù)據(jù)類型的轉換 ●變量的創(chuàng)建和重編碼 ●數(shù)據(jù)集的排序膏蚓、合并與取并集 ●...
    小白日常筆記閱讀 736評論 0 0
  • 數(shù)據(jù)分析中最重要的并不是如何敲代碼,如何收集數(shù)據(jù)畸写,而是數(shù)據(jù)分析前的準備——數(shù)據(jù)導入驮瞧,數(shù)據(jù)框架的構建、數(shù)據(jù)的基礎處理...
    白馬少年說閱讀 1,963評論 5 7
  • 基本數(shù)據(jù)管理 在前面的章節(jié)中枯芬,我們討論了多種導入數(shù)據(jù)到R中的方法论笔。遺憾的是,將你的數(shù)據(jù)表示為矩陣或數(shù)據(jù)框這樣的矩形...
    jplee閱讀 1,614評論 0 2
  • 你擠著我 一起走進書香 像長在心尖兒上 是夏日的風 和昨日的雨 還是今天的愛 讓我們?nèi)绱嗣利?有一個紅著臉 心里藏...
    春日細語閱讀 516評論 6 5
  • 網(wǎng)劇《春風十里不如你》在優(yōu)酷上熱播的同時,也掀起了一股青春回憶風淫痰。許多90后最楷,00后成了這部劇的主角。 也許正如作...
    易梓軒閱讀 397評論 3 3