Loading data 2

Published by onesixx on

엑셀에서 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='가' ")

https://onesixx.com/6-reading-data-into-r/

Categories: Reshaping

onesixx

Blog Owner

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x