수색…


리오로 데이터 가져 오기

많은 일반적인 파일 형식에서 데이터를 가져 오는 아주 간단한 방법은 rio를 사용하는 것 입니다. 이 패키지는 많은 공통적으로 사용되는 데이터 가져 오기 함수를 래핑하여 표준 인터페이스를 제공하는 import() 함수를 제공합니다. import() 파일 이름이나 URL을 전달하면됩니다.

import("example.csv")       # comma-separated values
import("example.tsv")       # tab-separated values
import("example.dta")       # Stata
import("example.sav")       # SPSS
import("example.sas7bdat")  # SAS
import("example.xlsx")      # Excel

import() 는 압축 된 디렉토리, URL (HTTP 또는 HTTPS) 및 클립 보드에서 읽을 수도 있습니다. 지원되는 모든 파일 형식의 포괄적 인 목록은 rio 패키지 github 저장소 에서 사용할 수 있습니다.

읽어들이려고하는 특정 파일 형식과 관련된 몇 가지 추가 매개 변수를 지정하여 import() 함수 내에서 직접 전달할 수도 있습니다.

import("example.csv", format = ",") #for csv file where comma is used as separator
import("example.csv", format = ";") #for csv file where semicolon is used as separator

Excel 파일 가져 오기

다음 표에 요약 된 것처럼 다양한 언어 또는 리소스를 사용하여 Excel 파일을 읽는 여러 개의 R 패키지가 있습니다.

R 패키지 용도
xlsx 자바
XLconnect 자바
openxlsx C ++
readxl C ++
RODBC ODBC
gdata

Java 또는 ODBC를 사용하는 패키지의 경우 R 버전 및 OS에 따라 호환성 문제가있을 수 있으므로 시스템에 대한 세부 정보를 알고 있어야합니다. 예를 들어 R 64 비트를 사용하는 경우 xlsx 또는 XLconnect 를 사용하려면 Java 64 비트가 있어야합니다.

각 패키지와 함께 Excel 파일을 읽는 몇 가지 예가 아래에 나와 있습니다. 많은 패키지가 동일하거나 매우 유사한 함수 이름을가집니다. 따라서 package::function 처럼 명시 적으로 패키지를 명시하는 것이 유용 package::function . openxlsx 패키지에는 openxlsx 사전 설치가 필요합니다.

xlsx 패키지를 사용하여 읽기 기능이 뛰어난 파일 읽기

library(xlsx)

가져 오기 위해서는 시트의 색인 또는 이름이 필요합니다.

xlsx::read.xlsx("Book1.xlsx", sheetIndex=1)

xlsx::read.xlsx("Book1.xlsx", sheetName="Sheet1")

XLconnect 패키지로 Excel 파일 읽기

library(XLConnect)
wb <- XLConnect::loadWorkbook("Book1.xlsx")

# Either, if Book1.xlsx has a sheet called "Sheet1":
sheet1 <- XLConnect::readWorksheet(wb, "Sheet1")
# Or, more generally, just get the first sheet in Book1.xlsx:
sheet1 <- XLConnect::readWorksheet(wb, getSheets(wb)[1])

XLConnectBook1.xlsx 포함 된 미리 정의 된 Excel 셀 스타일을 자동으로 가져옵니다. 이 기능은 통합 문서 개체의 서식을 지정하고 완벽하게 서식이 지정된 Excel 문서를 내보낼 때 유용합니다. 먼저 Book1.xlsx 에서 원하는 셀 형식을 만들어 myHeader , myBodymyPcts 와 같이 저장해야합니다. 그런 다음 R 통합 문서를로드 한 후 (위 참조) :

Headerstyle <- XLConnect::getCellStyle(wb, "myHeader")
Bodystyle <- XLConnect::getCellStyle(wb, "myBody")
Pctsstyle <- XLConnect::getCellStyle(wb, "myPcts")

셀 스타일이 이제 R 환경에 저장됩니다. 데이터의 특정 범위에 셀 스타일을 지정하려면 범위를 정의한 다음 스타일을 지정해야합니다.

Headerrange <- expand.grid(row = 1, col = 1:8)
Bodyrange <- expand.grid(row = 2:6, col = c(1:5, 8))
Pctrange <- expand.grid(row = 2:6, col = c(6, 7))

XLConnect::setCellStyle(wb, sheet = "sheet1", row = Headerrange$row,
             col = Headerrange$col, cellstyle = Headerstyle)
XLConnect::setCellStyle(wb, sheet = "sheet1", row = Bodyrange$row,
             col = Bodyrange$col, cellstyle = Bodystyle)
XLConnect::setCellStyle(wb, sheet = "sheet1", row = Pctrange$row,
             col = Pctrange$col, cellstyle = Pctsstyle)

XLConnect 는 쉽지만 서식이 매우 느려질 수 있습니다. openxlsx 는 훨씬 빠르지 만 성가신 서식 옵션을 제공합니다.

openxlsx 패키지를 사용하여 독서 파일을 읽습니다.

Excel 파일은 패키지 openxlsx 와 함께 가져올 수 있습니다.

library(openxlsx)

openxlsx::read.xlsx("spreadsheet1.xlsx", colNames=TRUE, rowNames=TRUE)

#colNames: If TRUE, the first row of data will be used as column names.
#rowNames: If TRUE, first column of data will be used as row names.

R로 읽혀 져야하는 sheetsheet 인수에 위치를 제공하여 선택할 수 있습니다.

openxlsx::read.xlsx("spreadsheet1.xlsx", sheet = 1)

또는 그 이름을 선언함으로써 :

openxlsx::read.xlsx("spreadsheet1.xlsx", sheet = "Sheet1")

또한 openxlsx 는 읽기 시트에서 날짜 열을 감지 할 수 있습니다. 자동으로 날짜를 감지하려면 detectDates 인수를 TRUE 로 설정해야 TRUE .

openxlsx::read.xlsx("spreadsheet1.xlsx", sheet = "Sheet1", detectDates= TRUE)

readxl 패키지를 사용하여 read 엑셀 파일

Excel 파일은 readxl 패키지를 사용하여 R 데이터 프레임으로 가져올 수 있습니다.

library(readxl)

.xls.xlsx 파일을 모두 읽을 수 있습니다.

readxl::read_excel("spreadsheet1.xls")
readxl::read_excel("spreadsheet2.xlsx")

가져올 시트는 번호 또는 이름으로 지정할 수 있습니다.

readxl::read_excel("spreadsheet.xls", sheet = 1)
readxl::read_excel("spreadsheet.xls", sheet = "summary")

인수 col_names = TRUE 는 첫 번째 행을 열 이름으로 설정합니다.

 readxl::read_excel("spreadsheet.xls", sheet = 1, col_names = TRUE)

인수 col_types 를 사용하여 데이터의 열 유형을 벡터로 지정할 수 있습니다.

readxl::read_excel("spreadsheet.xls", sheet = 1, col_names = TRUE,
                   col_types = c("text", "date", "numeric", "numeric"))

Reading은 RODBC 패키지를 사용하여 파일을 분석합니다.

Excel 파일은 Windows의 Access Database Engine (ACE) (이전에는 JET)과 인터페이스하는 ODBC Excel 드라이버를 사용하여 읽을 수 있습니다. RODBC 패키지를 사용하면 R이이 드라이버에 연결하여 통합 문서를 직접 쿼리 할 수 ​​있습니다. 워크 시트는 첫 번째 행의 열 머리글을 비슷한 유형의 체계화 된 열의 데이터로 유지한다고 가정합니다. 참고 : 이 방법은 JET / ACE가 .dll 파일로 설치되고 다른 운영 체제에서는 사용할 수 없으므로 Windows / PC 컴퓨터에만 제한됩니다.

library(RODBC)

xlconn <- odbcDriverConnect('Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
                             DBQ=C:\\Path\\To\\Workbook.xlsx')

df <- sqlQuery(xlconn, "SELECT * FROM [SheetName$]")
close(xlconn)

이 접근 방식에서 SQL 엔진과 연결하면 JOINUNION 작업을 비롯한 데이터베이스 테이블과 비슷한 Excel 워크 시트를 쿼리 할 수 ​​있습니다. 구문은 JET / ACE SQL 언어를 따른다. 참고 : 데이터 액세스 DML 문, 특히 통합 문서에서 SELECT 를 실행할 수 있으며 업데이트 할 수없는 쿼리로 간주됩니다.

joindf <-  sqlQuery(xlconn, "SELECT t1.*, t2.* FROM [Sheet1$] t1
                             INNER JOIN [Sheet2$] t2
                             ON t1.[ID] = t2.[ID]")

uniondf <-  sqlQuery(xlconn, "SELECT * FROM [Sheet1$]
                              UNION  
                              SELECT * FROM [Sheet2$]")

다른 통합 문서도 현재 통합 문서를 가리키는 동일한 ODBC 채널에서 쿼리 할 수 ​​있습니다.

otherwkbkdf <- sqlQuery(xlconn, "SELECT * FROM 
                                 [Excel 12.0 Xml;HDR=Yes;
                                 Database=C:\\Path\\To\\Other\\Workbook.xlsx].[Sheet1$];")

Reading은 gdata 패키지로 파일을 Excel에서 읽습니다.

여기에 예제가있다.

Stata, SPSS 및 SAS 파일 읽기 및 쓰기

foreignhaven 패키지는 Stata, SPSS 및 SAS 및 관련 소프트웨어와 같은 다양한 통계 패키지에서 파일을 가져오고 내보내는 데 사용할 수 있습니다. 지원되는 각 데이터 유형에 대해 파일을 가져 오기위한 read 기능이 있습니다.

# loading the packages
library(foreign)
library(haven)
library(readstata13)
library(Hmisc)

다음은 가장 일반적인 데이터 유형에 대한 몇 가지 예입니다.

# reading Stata files with `foreign`
read.dta("path\to\your\data")
# reading Stata files with `haven`
read_dta("path\to\your\data")

foreign 패키지는 Stata 7-12 버전의 stata (.dta) 파일을 읽을 수 있습니다. 개발 페이지에 따르면 read.dta 는 다소 고정되어 있으며 버전 13 이상에서는 읽을 수 있도록 업데이트되지 않습니다. 최신 버전의 Stata의 경우 readstata13 패키지 또는 haven 사용할 수 있습니다. readstata13 의 경우 파일은

# reading recent Stata (13+) files with `readstata13`
read.dta13("path\to\your\data")

SPSS 및 SAS 파일에서 읽기

# reading SPSS files with `foreign`
read.spss("path\to\your\data.sav", to.data.frame = TRUE)
# reading SPSS files with `haven`
read_spss("path\to\your\data.sav")
read_sav("path\to\your\data.sav")
read_por("path\to\your\data.por")

# reading SAS files with `foreign`
read.ssd("path\to\your\data")
# reading SAS files with `haven`
read_sas("path\to\your\data")
# reading native SAS files with `Hmisc`
sas.get("path\to\your\data")   #requires access to saslib 
# Reading SA XPORT format ( *.XPT ) files
sasxport.get("path\to\your\data.xpt")  # does not require access to SAS executable

SAScii 패키지는 SAS SET 가져 오기 코드를 허용하고 read.fwf 로 처리 할 수있는 텍스트 파일을 구성하는 기능을 제공합니다. 대규모 공개 데이터 세트 가져 오기에 매우 강력합니다. 지원은 https://github.com/ajdamico/SAScii입니다.

데이터 프레임을 다른 통계 패키지로 내보내려면 쓰기 함수 write.foreign() 사용할 수 있습니다. 이렇게하면 데이터가 들어있는 파일과 다른 패키지가 데이터를 읽는 데 필요한 지침이 포함 된 파일 두 개가 작성됩니다.

# writing to Stata, SPSS or SAS files with `foreign`
write.foreign(dataframe, datafile, codefile,
              package = c("SPSS", "Stata", "SAS"), ...)
write.foreign(dataframe, "path\to\data\file", "path\to\instruction\file", package = "Stata")

# writing to Stata files with `foreign`
write.dta(dataframe, "file", version = 7L,
          convert.dates = TRUE, tz = "GMT",
          convert.factors = c("labels", "string", "numeric", "codes"))

# writing to Stata files with `haven`
write_dta(dataframe, "path\to\your\data")

# writing to Stata files with `readstata13`
save.dta13(dataframe, file, data.label = NULL, time.stamp = TRUE,
  convert.factors = TRUE, convert.dates = TRUE, tz = "GMT",
  add.rownames = FALSE, compress = FALSE, version = 117,
  convert.underscore = FALSE)

# writing to SPSS files with `haven`
write_sav(dataframe, "path\to\your\data")

SPSS에 저장된 파일은 다음과 같이 read.spss 로 읽을 수도 있습니다.

 foreign::read.spss('data.sav', to.data.frame=TRUE, use.value.labels=FALSE, 
                     use.missings=TRUE, reencode='UTF-8')
# to.data.frame if TRUE: return a data frame
# use.value.labels if TRUE: convert variables with value labels into R factors with those levels
# use.missings if TRUE: information on user-defined missing values will used to set the corresponding values to NA.
# reencode character strings will be re-encoded to the current locale. The default, NA, means to do so in a UTF-8 locale, only.

페더 파일 가져 오기 또는 내보내기

Feather 는 메타 데이터 (예 : 날짜 클래스)를 유지하면서 언어에 구애받지 않는 방식으로 데이터 프레임을 저장하고 Python과 R 사이의 상호 운용성을 높이기 위해 고안된 Apache Arrow 의 구현입니다. 깃털 파일 읽기는 표준 data.frame이 아닌 tibble을 생성합니다.

library(feather)

path <- "filename.feather"
df <- mtcars

write_feather(df, path)

df2 <- read_feather(path)

head(df2)
##  A tibble: 6 x 11
##     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
##   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1  21.0     6   160   110  3.90 2.620 16.46     0     1     4     4
## 2  21.0     6   160   110  3.90 2.875 17.02     0     1     4     4
## 3  22.8     4   108    93  3.85 2.320 18.61     1     1     4     1
## 4  21.4     6   258   110  3.08 3.215 19.44     1     0     3     1
## 5  18.7     8   360   175  3.15 3.440 17.02     0     0     3     2
## 6  18.1     6   225   105  2.76 3.460 20.22     1     0     3     1

head(df)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

현재 설명서에 다음 경고가 포함되어 있습니다.

사용자 참고 사항 : 깃털은 알파 소프트웨어로 취급되어야합니다. 특히, 파일 형식은 내년에 진화 할 것입니다. 장기간 데이터 저장을 위해 깃털을 사용하지 마십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow