R語言對CSV文件操作實例講解
在 R 語言中,我們可以從存儲在 R 語言環境外的文件中讀取數據。 我們還可以將數據寫入將被操作系統存儲和訪問的文件。 R 語言可以讀取和寫入各種文件格式,如csv
,excel
,xml
等。
在本章中,我們將學習從csv
文件讀取數據,然後將數據寫入csv
文件。 該文件應該存在於當前工作目錄中,以便 R 語言可以讀取它。 當然我們也可以設置我們自己的目錄並從那裡讀取文件。
獲取和設置工作目錄
您可以使用getwd()
函數檢查R語言工作區指向的目錄。 您還可以使用setwd()
函數設置新的工作目錄。
# Get and print current working directory. print(getwd()) # Set current working directory. setwd("/web/com") # Get and print current working directory. print(getwd())
當我們執行上面的代碼,它產生以下結果
[1] "/web/com/1441086124_2016" [1] "/web/com"
此結果取決於您的操作系統和您當前工作的目錄。
輸入為CSV文件
csv 文件是一個文本文件,其中列中的值由逗號分隔。 讓我們考慮名為input.csv
的文件中出現的以下數據。
您可以通過復制和粘貼此數據使用 Windows 記事本創建此文件。 使用記事本中的保存為所有文件(*.*)
選項將文件保存為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()
函數的一個簡單示例,用於讀取當前工作目錄中可用的 CSV 文件
data <- read.csv("input.csv") print(data)
當我們執行上面的代碼,它產生以下結果
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文件
默認情況下,read.csv()
函數將輸出作為數據幀。 這可以容易地如下檢查。 此外,我們可以檢查列和行的數量。
data <- read.csv("input.csv") print(is.data.frame(data)) print(ncol(data)) print(nrow(data))
當我們執行上面的代碼,它產生以下結果
[1] TRUE [1] 5 [1] 8
一旦我們讀取數據幀中的數據,我們可以應用所有適用於數據幀的函數,如下一節所述。
獲得最高工資
# Create a data frame. data <- read.csv("input.csv") # Get the max salary from data frame. sal <- max(data$salary) print(sal)
當我們執行上面的代碼,它產生以下結果
[1] 843.25
獲取具有最高工資的人的詳細信息
我們可以獲取滿足特定過濾條件的行,類似於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)
當我們執行上面的代碼,它產生以下結果
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)
當我們執行上面的代碼,它產生以下結果
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)
當我們執行上面的代碼,它產生以下結果
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)
當我們執行上面的代碼,它產生以下結果
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 語言可以創建csv
文件形式的現有數據幀。 write.csv()
函數用於創建csv
文件。 此文件在工作目錄中創建。
# 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)
當我們執行上面的代碼,它產生以下結果
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 來自數據集newper
。 這可以在寫入文件時使用附加參數刪除。
# 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)
當我們執行上面的代碼,它產生以下結果
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
到此這篇關於R語言對CSV文件操作實例講解的文章就介紹到這瞭,更多相關R語言CSV文件操作內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!