15

私は大規模なデータセットを持っており、Rソフトウェアでいくつかの分析を実行します。データをRに正しくインポートできませんでしたが。

このエラーが発生します:

postgresqlNewConnection(drv、...)のエラー:RS-DBIドライバー:(dbname"Intel"でUser@localに接続できませんでした

私はPostgreSQLを使用してデータを開き、どういうわけかそれを管理しました。PostgreSQLの既存のデータをRソフトウェアにインポートするにはどうすればよいですか?

4

3 に答える 3

25
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host='localhost', port='5432', dbname='Swiss',
                 user='postgres', password='123456')

さらに、Rの「RPostgreSQL」パッケージをインストールする必要があります。

于 2012-12-04T10:30:55.113 に答える
7

RパッケージRPostgreSQLhttp://cran.r-project.org/web/packages/RPostgreSQL/を試してください。使用方法はhttp://code.google.com/p/rpostgresql/で確認できます。例:

library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")   ## loads the PostgreSQL driver
con <- dbConnect(drv, dbname="R_Project")   ## Open a connection 
rs <- dbSendQuery(con, "select * from R_Users")   ## Submits a statement
fetch(rs,n=-1)   ## fetch all elements from the result set
dbGetQuery(con, "select * from R_packages")   ## Submit and execute the query
dbDisconnect(con)   ## Closes the connection
dbUnloadDriver(drv)   # Frees all the resources on the driver
于 2012-09-19T08:31:31.093 に答える
0

リモートで接続する前に、PostgreSQLサーバーで2つの設定を行う必要があります。これは、Linuxでこれを構成する方法の説明です。

1. postgresql.confを見つけて構成し、TCPサービスがローカルホストだけでなく任意のホストからの接続を受け入れることができるようにします。

検索/-name"postgresql.conf"

私のLinuxOSでは、ファイルは/etc/postgresql/9.6/main/にあるので、そこで変更します。次のように「listen_addresses='*'」という行を追加します。

/etc/postgresql/9.6/main/postgresql.conf

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
# insert the following line
listen_addresses = '*'

2. pg_hba.confを見つけて構成し、任意のホストからクライアントに接続できるようにします

sudo find / -name "pg_hba.conf"

私のLinuxOSでは、ファイルは/etc/postgresql/9.6/main/にあるので、そこで変更します。次のように「hostallall0.0.0.0 /0」という行を追加します。

sudo nano /etc/postgresql/9.6/main/pg_hba.conf

# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
#
# insert the following line
host all all 0.0.0.0/0 trust

3.サーバーを停止して起動します

sudo service postgresql stop

sudo service postgresql start

4.クライアントに接続します。これで動作するはずです。

幸運を!

于 2017-11-03T09:56:37.807 に答える