2011-01-09 3 views
3

나는 Windows 컴퓨터에서 매일 업데이트되는 Excel 파일들을 가지고 있습니다. 우분투 컴퓨터로 전송하고 거기에서 열고 싶습니다. 특히, 나는 R에서 데이터베이스로 파일을 읽고 싶다.Excel 우분투에서 열리는 파일, R, OpenOffice에서 읽음

몇 년 전, 나는 R을 통해 Excel 파일을 열려면 Windows 컴퓨터에서 ODBC를 사용했다. 어떤 방법으로도이 작업을 우분투에서 할 수있다. ?

OpenOffice를 사용하여 해당 XLS 파일에 대한 데이터베이스 .ODB 파일을 만들 수 있지만 .ODB 데이터베이스에 연결하는 방법을 알지 못합니다. OpenOffice는 TO 데이터베이스에 연결할 수있는 방법이 있지만 ODB에 연결할 수있는 방법은 없습니다.

해답을 주셔서 감사합니다.

+0

append : '파일을 데이터베이스로 읽기'라고 말하면 SQL을 사용하여 워크 시트에서 데이터를 가져 오는 것이 좋습니다. –

+0

sqldf 패키지는 옵션 일 수 있습니다. http://cran.r-project.org/web/packages/sqldf/index.html – daroczig

답변

2

특별한 요구 사항이없는 xlsx 패키지 (예 : xlsReadWrite 등)를 제안하므로 Linux에서 쉽게 사용할 수 있습니다. 그것은 단지 xlsx 형식을 읽고 (쓰는).

gdata 패키지에서 read.xls 기능을 사용할 수 있습니다.이 패키지는 먼저 xls 파일을 csv로 변환하고 해당 데이터 프레임을 읽습니다. Perl과 xls2csv이 설치되어 있어야합니다. 이는 Linux에서 큰 문제는 아닙니다.

+4

xlsx 패키지에는 Java가 설치되어 있어야합니다. gdata의'read.xls'는 perl이 설치되어 있어야합니다. 'xls2csv'는 gdata 패키지의 일부이며 별도로 설치할 필요가 없습니다. R 위키에서 Excel 스프레드 시트를 읽는 xlsx 및 gadata를 비롯한 다양한 대안에 대한 토론이 있습니다. http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows –

+0

시도했습니다. xlsx 패키지 작업,하지만 난 그것으로 메모리 문제가 실행되는 것. 스프레드 시트는 약 100 ~ 150Mb 정도로 거대하지 않지만 시트를 데이터 프레임으로 읽는 것은 실패합니다. –

2

귀하의 ODBC 솔루션은 당신과 R.의 RODBC 패키지 그의 의견에 가보가 제공하는 링크 (당신은 또한 RODBC를 컴파일 할 경우 unixODBC-devel 패키지를해야 할 수도 있습니다 귀하의 OS 용) uniXODBC 패키지를 설치 제공, 리눅스에서 작동해야 @ daroczig의 답변에는 Linux의 RODBC에 대한 세부 정보가 있습니다. Linux에 대한 읽기 전용이고 잠재적으로 어려운 설정에 대한 요점에 유의하십시오.

@daroczig 및 Gabor가 제안한 옵션으로 더 잘 수행 할 수 있지만 ODBC에 익숙하다면 우분투에서도 시도해 볼 수 있습니다.

+1

감사합니다. RODBC 옵션이 Linux에서 Excel 파일과 함께 작동하는지 확신 할 수 없었습니다.어딘가에서 RODBC + Excel이 Excel에서 사용할 수있는 일부 드라이버가 필요하다는 것이 내 머리 속에 묻혀있었습니다.이 드라이버는 Linux에서 사용할 수 없습니다. 사실, 나는 아직도 ODBC 파일을 엑셀 파일로 만들 수있는 방법을 모른다. Windows에서이 작업을 수행했습니다. 그리고 저는 리눅스에서 ODBC를 사용하고 있기 때문에 ok입니다. unixODBC를 통해 R과 함께 다른 DB를 사용합니다. . –

+0

개빈, unixODBC를 통해 .XLSX 파일을 제공하는 방법에 대한 아이디어가 있습니까? –

+0

@Vishal Belsare - 아니요, 죄송합니다. 나는 ODBC가 리눅스에서 약간의 흑인 예술이라는 것을 알았다. Linux에서 ODBC 자원을 설정하는 데 이미 익숙한 경우에 한해서 만 대답을 제공했습니다. 나는 열정으로 Excel을 싫어한다 - 나는 나와 협력하여 일하는 누군가가 CSV 또는 유사한 파일을 내보낼 것을 주장한다. –

2

두 가지 솔루션이 있습니다. 두 시스템이 모두 액세스 할 수있는 데이터베이스에 데이터를 호스팅하십시오. Postgres 또는 MySQL은 현금이 덜컹 거리는 경우 아무 것도 없거나 MS-SQL 서버 비용이들 것입니다. 네트워크로 연결된 RDBMS가 설계된 것입니다. 원격 컴퓨터에서 Excel 및 R의 데이터로 재생할 수 있습니다. 승리.

Excel 파일을 복사하는 것은 많은 일이 일어나기를 기다리고 있습니다. 실제 RDBMS를 얻으십시오. 나는 Postgres에 갈거야.

+0

필자는 반드시 Excel 파일에 저장된 데이터로 인해 제약을받습니다. (재무 데이터 단말기에서 파일을 업데이트한다고 생각할 때). 데이터 도관이 아니면 Excel을 완전히 없앨 것입니다. btw. 나는 Postgres + R, MonetDB + R을 다른 프로젝트에 사용한다. . 이 경우 매일 업데이트되는 Excel 파일을 읽을 수 있어야하고 RDBMS를 채울 예정입니다. Postgres –

4

xls2csvapt-get install catdoc에서 가져와 Excel 파일을 CSV로 덤프 할 수 있습니다. 그렇다면 당신은 그들이 어떻게 거기에서 얻을 수 있는지에 관해서는 꽤 많이 독을 선택할 수 있습니다. sqldf 패키지의 read.csv.sql은 SQL 문을 사용하여 정보를 추출하려는 경우 매우 편리 할 수 ​​있습니다.

+0

R에서 catdoc을 실행할 수 있습니까? –

+0

@Roman Luštrik : 적어도 시스템 호출 (:? system 참조)이 가능합니다. – daroczig

+0

주어진 gdata와 xlsx가 모두 메모리 문제로 인해 실패하는 경우 xls2csv를 사용해보십시오. –

관련 문제