14
R connection to Database 1

1. Importing Data from Files top.5.salaries.csv top.5.salaries

Embed Size (px)

Citation preview

1

R connection to Database

Importing Data from Files

top.5.salaries.csv

top.5.salaries<-read.table(“top.5.salaries.csv”,header= TRUE,sep=“,”,quote=“\””)

R 기초 -2

Importing Data from Data-basesDatabase connection packages

R 기초 -3

SQLite

SQLite downloadhttp://www.sqlite.org/download.html

SQLite Database Browserhttp://sourceforge.net/projects/sqlitebrowser/

SQLite ODBC Driverhttp://www.ch-werner.de/sqliteodbc/

R 기초 -4

Connecting SQLite Data-bases

bbdb<-odbcConnect(“bbdb”)odbcGetInfo(bbdb)

R 기초 -5

Getting information about the database Table name

sqlTables(bbdb) sqlColumns(bbdb,”Allstar”)

R 기초 -6

Getting data

Select teamID, W, LFrom TeamsWhere yearID = 2008 and lgID = “AL”

•sqlSave: for writing a data frame to a database•sqlUpdate: for updating a table in a database

teams<-sqlFetch(bbdb,”Teams”)names(teams)

dim(teams)

subset(teams,subset=(teams$yearID==2008 & teams$lgID==“AL”),select=c(“teamID”,”W”,”L”))

R 기초 -7

Getting datastandard SQL statement

sqlQuery(bbdb,“SELECT teamID,W,L FROM Teams where tearID=2008 and lgID=‘AL’”)

> odbcClose(bbdb) # DB 활용 후 , 접속 세션 객체를 close 해야 함

R 기초 -8

DBI packages

drv<-dbDriver(“SQLite”)

con<-dbConnect(drv,dbname=system.file(“extdata”,”bb.db”,package=“nutshell”))

con<-dbConnect(“SQLite,dbname=system.file(“extdata”, “bb.db”, package=“netshell.bbdb”))

class(drv)

class(con)

dbListConnections(drv)

R 기초 -9

DBI packagesdbGetInfo(con)

R 기초 -10

DBI Packages

To find the set of tables

To find the list of columns

dbListTables(con)

dbListFields(con, “All-star”)

R 기초 -11

DBI Packages

Querying the databases

wlrecords.2008 <- dbGetQuery(con,“SELECT teamID, W, L FROM Teams where yearID=2008 and lgID=‘AL’ ”

> batting.2008<-dbGetQuery(con, paste(“SELECT m.nameLast, m.nameFirst, m.weight, m.height, ”,

“m.bats, m.throws, m.debut, m.birthYear, b.* ” , “from Master m inner join Batting b” , “on m.playerID=b.playerID where

b.yearID=2008”))names(batting.2008)

dim(batting.2008)

R 기초 -12

DBI Packagesres<-dbSendQuery(con, “SELECT teamID, W, L FROM Teams where yearID=2008 and lgID=‘AL’ ”)wlrecords.2008 <- fetch(res)

res <- dbSendQuery(con, “SELECT * from Master”)dbClearResult(res)

res <- dbSendQuery(con, “SELECT * from non_existent_table”)

dbGetException(con)

R 기초 -13

DBI Packages

battrs<-dbReadTable(con, “Bat-ting”)dim(batters)

Reading whole tables from a database

Writing a data.frame to a table

dbWriteTable(con, "mtcars", mtcars[1:10, ])

R 기초 -14