데이터베이스 파일에 SQLite 데이터베이스 연결이 있습니다. 테이블 중 하나에서 일부 데이터를 추출하고 R에서 일부 처리를 수행 한 다음 처리 된 데이터에서 동일한 연결에 임시 테이블을 작성하려고합니다. 사용자는 데이터베이스에 대한 쓰기 권한이 없기 때문에 임시 테이블이어야하지만 데이터베이스에 이미있는 데이터와 함께이 새 데이터를 쿼리 할 수 있기를 원합니다.R 데이터 프레임에서 SQLite 임시 테이블을 추가하는 방법은 무엇입니까?
때문에, 예를 들면 :
dbWriteTable(conn=db, name= "iris_proc", value = d)
하지만 I :
require(sqldf)
db <- dbConnect(SQLite(), "tempdb")
dbWriteTable(db, "iris", iris)
# do some processing in R:
d <- dbGetQuery(db, "SELECT Petal_Length, Petal_Width FROM iris;")
names(d) <- c("length_2", "width_2")
d <- exp(d)
후 나는 내가 할 수있는 알고 d
에서 연결 db
에 임시 테이블을 만들고 싶어 임시 테이블에서 필요하며 dbWriteTable
에 옵션이없는 것 같습니다.
dbGetQuery(db, paste("UPDATE iris2 SET length_2 =", paste(d$length_2, collapse = ", "), ";"))
Error in sqliteExecStatement(con, statement, bind.data) :
RS-DBI driver: (error in statement: near "4.05519996684467": syntax error)
: 컬럼에
d
에서 데이터를
dbGetQuery(db, "CREATE TEMP TABLE iris_proc AS SELECT Species FROM iris;")
dbGetQuery(db, "ALTER TABLE iris_proc ADD COLUMN length_2;")
을하지만 내가 얻을 수 없다 : 내가 생각
한 가지 해결 방법은 임시 테이블을 추가 한 다음 열을 추가하고 업데이트하는 것이 었습니다
나는 이것을 작동 시키더라도 무섭게 비효율적이라고 상상해 봅니다.
read.csv.sql을 사용하여이 작업을 수행 할 수있는 방법이 있다고 생각했지만 오픈 연결 개체에서는 작동하지 않습니다.
는'temporary' 매개 변수 – hadley