簡體   English   中英

通過訪問將數據導入R

[英]Import data into R from access

我正在嘗試從訪問中將數據拉到R中,我已經成功完成了。

現在,我要做的是用一行代碼而不是一行代碼插入所有需要的表。

例:

我有5張表:3/15策略詳細信息6/15策略詳細信息9/15策略詳細信息12/15策略詳細信息3/16策略詳細信息

如您所見,所有表都以“策略詳細信息”結尾,但以不同的日期開頭。

我的原始解決方案:

library(RODBC)
db<-file.path("C:\\Path\\To\\Database.accdb")
db
channel<-odbcConnectAccess2007(db)

sqlTables(channel,tableType = "TABLE")$TABLE_NAME ##List all table names

Q1.15<-sqlFetch(channel,"3/15 Policy Details")
Q2.15<-sqlFetch(channel,"6/15 Policy Details")
close(channel)

我必須為每個季度使用sqlFetch。 我想做的是在所有表中引入一串代碼,反對每個季度編寫一行單獨的代碼。

考慮在返回的表名列表上使用grep() 然后使用lapply()將表提取綁定到列表中,然后使用list2env將其分離出來以分離數據幀對象:

library(RODBC)

db <- file.path("C:\\Path\\To\\Database.accdb")

channel<-odbcConnectAccess2007(db)

accTables <- sqlTables(channel,tableType = "TABLE")$TABLE_NAME
accTables <- accTables[grep(".*Policy Details$", accTables)]

dfList <- lapply(accTables, function(t) sqlFetch(channel, t))

close(channel)

# NAME EACH DF ELEMENT THE SAME AS TABLE NAME
dfList <- setNames(dfList, accTables)

# OUTPUT EACH DF TO INDIVIDUAL OBJECT
list2env(dfList, envir=.GlobalEnv)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM