Loading data 2
엑셀에서 Copy 하여 R에 paste
가장 빠른 방법이긴 하지만, 엑셀을 열고 Copy해야함.
df = read.table("clipboard")
https://cran.r-project.org/web/packages/RODBC/RODBC.pdf
RODBC 를 이용한 Excel 연결
ODBC 연결설정 : 사용자 Data Source Name 설정
install.packages("RODBC") # ODBC 연결설정
제어판>관리도구>데이터 원본(ODBC) 에서 [사용자DSN]>[추가]버튼클릭
>새 데이터 원본 만들기>[MySQL Excel Driver] 선택후 접속 정보 지정
with ODBC
library(RODBC) conn <- odbcConnect("testExcel") odbcGetInfo(conn) # 파일정보확인 # DBMS_Name DBMS_Ver Driver_ODBC_Ver # "EXCEL" "12.00.0000" "03.51" #Data_Source_Name Driver_Name Driver_Ver # "testExcel" "ACEODBC.DLL" "Microsoft Access database engine" # ODBC_Ver Server_Name # "03.80.0000" "EXCEL" sqlTables(conn) # sqlTables함수는 접속한 엑셀파일의 정보를 보여주며, 특히 여기서 TABLE_NAME 항목은 해당파일의 worksheet명이다. 이 worksheet명은 쿼리문을 사용시 [sheet1$] 로 사용된다 result <- sqlQuery(conn, "select * from [Sheet1$]", as.is=T) odbcClose(conn)
without ODBC
library(RODBC) conn <- odbcConnectExcel("myfile.xlsx") # open a connection to the Excel file conn <- odbcConnectExcel2007("C:/Documents/test2.xlsx", readOnly=F) odbcGetInfo(conn) sqlTables(conn) result <- sqlQuery(conn, "select * from [Sheet1$]") # read a sheet (alternative SQL sintax) result <- sqlQuery(conn, "select * from [Sheet1$]", as.is=T) result <- sqlFetch(conn, "Sheet1") # read a sheet odbcClose(conn)
엑셀파일 접속시 옵션 readOnly=F를 사용한 경우, 아래처럼 SQL의 update 문을 사용할 수 있다.
sqlQuery(con, "update [Sheet1$] set B=60 where F1='가' ")