私はpostgresqlデータベース接続を持っており、データベースからテーブルを取得したいと考えています。おそらく、接続情報を別のファイルに保存することをお勧めしますか? 私はちょうど今、2つのファイルを持っている:スクリプトから1つの変数のみを取得します
#getthetable.R
library(tidyverse)
library(dbplyr)
## connect to db
con <- src_postgres(dbname = "thedbname",
host = "blablabla.amazonaws.com",
port = NULL,
user = "myname",
password = "1234")
thetable <- tbl(con, "thetable") %>% select(id, apples, carrots) %>% collect
そして:
#main.R
library(tidyverse)
## get data from getthetable script with connection
source("rscripts/getthetable.R")
これは今main.R.の両方con
とthetable
変数が利用できるようにします変数をthetable
からgetthetable.Rに変更するだけです。それ、どうやったら出来るの?変数を出す?
また、rでdb接続を処理するときのベストプラクティスはありますか?私の考えは論理的ですか?私がやっていることに欠点があるのでしょうか、あるいはほとんどの人がメインのスクリプトと一緒に接続するだけですか?
Rのオブジェクトは* environments *に属し、ファイルには属しません。同じ環境から2つのファイルをソースする場合、そこに定義されているすべてのオブジェクトが環境に属します(他の環境にオブジェクトを明示的に配置しない限り)。あなたは 'rm'(そして' con'オブジェクトも含む)を使ってオブジェクトを削除するか、関数の中で 'con'を定義することができます。 – nicola
応答@ニコラありがとう。私のアプローチはあなたに合っていますか?スクリプト内のデータと接続を分離するのは論理的ですか、それとも心配していますか?また、私はあなたのフィードバックをどのように行動するかわかりません...あなたは接続の詳細スクリプト内でrm()を使うべきだと言っていますか?それは私の望むtbl 'thetable'を削除しますか?従来のアプローチは何ですか? –