R語言 CSV文件

在R語言中蛹磺,我們可以從存儲在R語言環(huán)境外的文件中讀取數(shù)據(jù)瞧哟。 我們還可以將數(shù)據(jù)寫入將被操作系統(tǒng)存儲和訪問的文件混巧。 R語言可以讀取和寫入各種文件格式勤揩,如csv,excel陨亡,xml等傍衡。
在本章中,我們將學(xué)習(xí)從csv文件讀取數(shù)據(jù)蛙埂,然后將數(shù)據(jù)寫入csv文件。 該文件應(yīng)該存在于當(dāng)前工作目錄中绣的,以便R語言可以讀取它。 當(dāng)然我們也可以設(shè)置我們自己的目錄并從那里讀取文件欲账。
獲取和設(shè)置工作目錄

您可以使用getwd()函數(shù)檢查R語言工作區(qū)指向的目錄屡江。 您還可以使用setwd()函數(shù)設(shè)置新的工作目錄。

Get and print current working directory.

print(getwd())

Set current working directory.

setwd("/web/com")

Get and print current working directory.

print(getwd())
當(dāng)我們執(zhí)行上面的代碼赛不,它產(chǎn)生以下結(jié)果 -
[1] "/web/com/1441086124_2016"
[1] "/web/com"
此結(jié)果取決于您的操作系統(tǒng)和您當(dāng)前工作的目錄。
輸入為CSV文件

csv文件是一個文本文件文黎,其中列中的值由逗號分隔。 讓我們考慮名為input.csv的文件中出現(xiàn)的以下數(shù)據(jù)臊诊。
您可以通過復(fù)制和粘貼此數(shù)據(jù)使用Windows記事本創(chuàng)建此文件。 使用記事本中的保存為所有文件(.)選項將文件保存為input.csv触机。
id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Michelle,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
,Gary,843.25,2015-03-27,Finance
6,Nina,578,2013-05-21,IT
7,Simon,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance
讀取CSV文件

以下是read.csv()函數(shù)的一個簡單示例玷或,用于讀取當(dāng)前工作目錄中可用的CSV文件 -
data <- read.csv("input.csv")
print(data)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
id, name, salary, start_date, dept
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
6 6 Nina 578.00 2013-05-21 IT
7 7 Simon 632.80 2013-07-30 Operations
8 8 Guru 722.50 2014-06-17 Finance
分析CSV文件

默認(rèn)情況下蔬胯,read.csv()函數(shù)將輸出作為數(shù)據(jù)幀位他。 這可以容易地如下檢查。 此外鹅髓,我們可以檢查列和行的數(shù)量。
data <- read.csv("input.csv")

print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
當(dāng)我們執(zhí)行上面的代碼骗奖,它產(chǎn)生以下結(jié)果 -
[1] TRUE
[1] 5
[1] 8
一旦我們讀取數(shù)據(jù)幀中的數(shù)據(jù)醒串,我們可以應(yīng)用所有適用于數(shù)據(jù)幀的函數(shù),如下一節(jié)所述芜赌。
獲得最高工資

Create a data frame.

data <- read.csv("input.csv")

Get the max salary from data frame.

sal <- max(data$salary)
print(sal)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[1] 843.25
獲取具有最高工資的人的詳細(xì)信息

我們可以獲取滿足特定過濾條件的行较鼓,類似于SQL where子句。

Create a data frame.

data <- read.csv("input.csv")

Get the max salary from data frame.

sal <- max(data$salary)

Get the person detail having max salary.

retval <- subset(data, salary == max(salary))
print(retval)
當(dāng)我們執(zhí)行上面的代碼博烂,它產(chǎn)生以下結(jié)果 -
id name salary start_date dept
5 NA Gary 843.25 2015-03-27 Finance
獲取所有的IT部門員工的信息

Create a data frame.

data <- read.csv("input.csv")

retval <- subset( data, dept == "IT")
print(retval)
當(dāng)我們執(zhí)行上面的代碼禽篱,它產(chǎn)生以下結(jié)果 -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
6 6 Nina 578.0 2013-05-21 IT
獲得工資大于600的IT部門的人員

Create a data frame.

data <- read.csv("input.csv")

info <- subset(data, salary > 600 & dept == "IT")
print(info)
當(dāng)我們執(zhí)行上面的代碼馍惹,它產(chǎn)生以下結(jié)果 -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
獲得2014年或之后加入的人

Create a data frame.

data <- read.csv("input.csv")

retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
print(retval)
當(dāng)我們執(zhí)行上面的代碼玛界,它產(chǎn)生以下結(jié)果 -
id name salary start_date dept
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
8 8 Guru 722.50 2014-06-17 Finance
寫入CSV文件

R語言可以創(chuàng)建csv文件形式的現(xiàn)有數(shù)據(jù)幀悼吱。 write.csv()函數(shù)用于創(chuàng)建csv文件。 此文件在工作目錄中創(chuàng)建笨枯。

Create a data frame.

data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))

Write filtered data into a new file.

write.csv(retval,"output.csv")
newdata <- read.csv("output.csv")
print(newdata)
當(dāng)我們執(zhí)行上面的代碼遇西,它產(chǎn)生以下結(jié)果 -
X id name salary start_date dept
1 3 3 Michelle 611.00 2014-11-15 IT
2 4 4 Ryan 729.00 2014-05-11 HR
3 5 NA Gary 843.25 2015-03-27 Finance
4 8 8 Guru 722.50 2014-06-17 Finance
這里列X來自數(shù)據(jù)集newper。 這可以在寫入文件時使用附加參數(shù)刪除洲敢。

Create a data frame.

data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))

Write filtered data into a new file.

write.csv(retval,"output.csv", row.names = FALSE)
newdata <- read.csv("output.csv")
print(newdata)
當(dāng)我們執(zhí)行上面的代碼茄蚯,它產(chǎn)生以下結(jié)果 -
id name salary start_date dept
1 3 Michelle 611.00 2014-11-15 IT
2 4 Ryan 729.00 2014-05-11 HR
3 NA Gary 843.25 2015-03-27 Finance
4 8 Guru 722.50 2014-06-17 Finance

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哮塞,隨后出現(xiàn)的幾起案子凳谦,更是在濱河造成了極大的恐慌,老刑警劉巖尸执,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件如失,死亡現(xiàn)場離奇詭異,居然都是意外死亡褪贵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門世舰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來槽卫,“玉大人,你說我怎么就攤上這事歼培∪兹” “怎么了查剖?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵笋庄,是天一觀的道長。 經(jīng)常有香客問我无切,道長,這世上最難降的妖魔是什么哆键? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任籍嘹,我火速辦了婚禮,結(jié)果婚禮上辱士,老公的妹妹穿的比我還像新娘。我一直安慰自己异赫,他們只是感情好头岔,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著靠抑,像睡著了一般适掰。 火紅的嫁衣襯著肌膚如雪颂碧。 梳的紋絲不亂的頭發(fā)上类浪,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天戚宦,我揣著相機(jī)與錄音,去河邊找鬼受楼。 笑死,一個胖子當(dāng)著我的面吹牛艳汽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播米绕,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼馋艺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碱鳞?” 一聲冷哼從身側(cè)響起踱蛀,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崩泡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體角撞,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡勃痴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年召耘,在試婚紗的時候發(fā)現(xiàn)自己被綠了百炬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片污它。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡衫贬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出固惯,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布屡穗,位于F島的核電站忽肛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏础废。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一评腺、第九天 我趴在偏房一處隱蔽的房頂上張望淑掌。 院中可真熱鬧,春花似錦诈悍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舷夺。三九已至售貌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颂跨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工池颈, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留钓丰,地道東北人。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓携丁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親李茫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

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