15

我有一个大数据集,我将在 R 软件中进行一些分析。虽然我无法将数据正确导入 R。

我收到此错误:

postgresqlNewConnection(drv, ...) 中的错误:RS-DBI 驱动程序:(无法连接数据库名称“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 包 RPostgreSQL http://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 服务器上配置两件事。这是如何在 Linux 下进行配置的说明:

1.找到并配置postgresql.conf,让TCP服务接受来自任何主机的连接,而不仅仅是localhost

查找/-名称“postgresql.conf”

在我的 linux 操作系统中,该文件位于 /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 以允许从任何主机连接客户端

须藤查找/-名称“pg_hba.conf”

在我的 linux 操作系统中,该文件位于 /etc/postgresql/9.6/main/ 中,所以我在那里对其进行了修改。添加“host all all 0.0.0.0/0”行,如下所示:

须藤纳米/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 服务 postgresql 停止

sudo 服务 postgresql 启动

4. 与您的客户连接,现在应该可以工作了。

祝你好运!

于 2017-11-03T09:56:37.807 回答