簡體   English   中英

如何使用列名和行名將Excel數據導入到R中

[英]How to import excel data into R using column name and row name

我是R新手,想知道如何使用行名和列名將Excel數據導入到R中。 具體來說,我需要一個excel文件中的許多工作表中的數據子集。 我可以使用行名和列名來識別和提取某些數據單元到R嗎?

Worksheet 1
----------
* X Y Z 
A 1 2 2
B 1 1 1
C 1 3 4
D 4 2 2
E 2 2 2 
----------
Worksheet 2
----------
*  X Y1 Z1 
A 1  2  2
B 1  2  3
C 1  3  4
D 4  1  1
E 2  1  1 

例如,在上面的電子表格中,我如何使用工作表1中的行和列名稱(D,Y)(D,Z)(E,Y)(E,Z)提取數據(2,2,2,2)

如何使用工作表2中的行和列名稱(D,Y1)(D,Z1)(E,Y1)(E,Z1)提取數據(1,1,1,1)?

感謝您提供的任何幫助

巴里

@Andrie提到了XLConnect包,它是R和Excel之間I / O的一個非常有用的包,可以在Excel工作表中選擇區域。

我在Dropbox公共文件夾中創建了一個類似你的Excel文件,你可以在這里下載example.xls文件。

require(XLConnect)

## A5:C5 correspond to (D,Y) (D,Z) (E,Y) (E,Z)  in your example
selectworksheet1 <- readWorksheetFromFile("/home/ahmadou/Dropbox/Public/example.xls",
                               sheet = "Worksheet1", 
                               region = "A5:C5", header = FALSE)

selectworksheet1
##  Col0 Col1 Col2
## 1    2    2    2


## B4:C5 correspond to (D,Y1) (D,Z1) (E,Y1) (E,Z1) in the second example
selectworksheet2 <- readWorksheetFromFile("/home/ahmadou/Dropbox/Public/example.xls",
                         sheet = "Worksheet2", 
                         region = "B4:C5", header = FALSE)

selectworksheet2
##   Col0 Col1
## 1    1    1
## 2    1    1

unlist(selectworksheet2)
## Col01 Col02 Col11 Col12 
##    1     1     1     1 

有幾個包提供了將Excel數據導入R的功能; 請參閱R數據導入/導出文檔。

我發現xlsx包很有用(它將讀取.xls和.xlsx文件)。 我不相信它會接受行/列名作為輸入,但它會接受它們的數值(例如第1行,第4列)。 在你的情況下,假設X,Y和Z對應於第1-3列,這樣的東西應該有效:

library(xlsx)
# first example subset; call it ss1
# assume first row is not a header; otherwise requires header = T
ss1 <- read.xlsx("myfile.xlsx", sheetIndex = 1, rowIndex = 4:5, colIndex = 2:3)

# second example subset; call it ss2
# just the same except worksheet index = 2
ss2 <- read.xlsx("myfile.xlsx", sheetIndex = 2, rowIndex = 4:5, colIndex = 2:3)

但是,您需要嘗試使用自己的文件,直到按預期方式工作。 您還可以指定sheetName,但是一旦找出每個工作表的正確索引,我發現sheetIndex通常可以更可靠地工作。 如果第一行是標題,請注意。

說了這么多:我首選的選擇是將工作表導出為CSV等文本格式,使用shell工具(剪切,頭部,尾部 )來獲取所需的行/列並將其導入R.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM