R_sqLite_Excel
> install.packages ("xlsReadWrite") > library (xlsReadWrite) # インストール直後には以下を実行する必要があります # xls.getshlib() # Excel のシートからデータフレームを作成 > (x <- read.xls ("Book1.xls", sheet = "Book1") ) ID Name Sex Grade 1 1 あ 男 60 2 2 い 男 65 3 3 う 女 70 4 4 え 男 75 5 5 お 女 80 > # データフレームからエクセル・ファイルを作成 > write.xls (iris, file = "iris.xls")
> # データベース風にエクセル・ファイルにアクセス > install.packages ("RODBC") > library(RODBC) > getwd() [1] "C:/workhome" > # エクセル・ファイルにアクセス > con <- odbcConnectExcel("Book1.xls", readOnly= FALSE) > # ファイルの概要を表示 > sqlTables (con) TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE 1 C:\\workhome\\Book1 <NA> Book1$ SYSTEM TABLE 2 C:\\workhome\\Book1 <NA> Sheet2$ SYSTEM TABLE 3 C:\\workhome\\Book1 <NA> Sheet3$ SYSTEM TABLE REMARKS 1 <NA> 2 <NA> 3 <NA> > # データベースからデータフレームを作成 > (x <- sqlQuery (con, "select * from [Book1$]")) ID Name Sex Grade 1 1 あ 男 60 2 2 い 男 65 3 3 う 女 70 4 4 え 男 75 5 5 お 女 80 > is.data.frame(x) [1] TRUE > # データベース風に抽出も可能 > sqlQuery (con, 'select Grade from [Book1$] where Grade > 70') Grade 1 75 2 80 > sqlQuery (con, "update [Book1$] set Sex = 'F' where Sex = '女'") character(0) > # エクセル・ファイルとの接続を切る > odbcClose (con) >
> library(RSQLite) 要求されたパッケージ DBI をロード中です > > drv <- dbDriver( "SQLite") > setwd("C:/sqlite") > # データベースにアクセス > con <- dbConnect(drv, dbname = "test.db") > # テーブルを表示 > dbReadTable (con, "test") id name sex 1 1 山田 M 2 2 佐藤 F > > # 「iris」データフレームをデータベースに登録 > dbWriteTable (con, value = iris, name = "iris" ) [1] TRUE > # 登録されたデータを確認 > dbReadTable (con, "iris") Sepal_Length Sepal_Width Petal_Length Petal_Width 1 5.1 3.5 1.4 0.2 2 4.9 3.0 1.4 0.2 3 4.7 3.2 1.3 0.2 … 中略 Species 1 setosa 2 setosa 3 setosa … 以下略 > # 条件抽出してみる > dbGetQuery (con, "select * from iris where Petal_Width > 2") row_names Sepal_Length Sepal_Width Petal_Length 1 101 6.3 3.3 6.0 2 103 7.1 3.0 5.9 3 105 6.5 3.0 5.8 … 中略 Petal_Width Species 1 2.5 virginica 2 2.1 virginica 3 2.2 virginica … 以下略
> # 「Petal_Width」フィールドの平均を求める > dbGetQuery (con, "select avg (Petal_Width) from iris") avg (Petal_Width) 1 1.199333 > # データベースとの接続を切る > dbDisconnect (con) [1] TRUE
Link: R_old_tips3(1908d)
Rの備忘録(3944d)
日録2011年01月(4993d)
Last-modified: 2011-01-06 (木) 23:31:44 (5021d)