将PostgreSQL与R连接

时间:2015-04-20 18:21:09

标签: r postgresql connection

我正在尝试与R中的PostgreSQL数据库建立连接。

我正在写这个

drv <- dbDriver("PostgreSQL")

但结果我有一个错误:

  

错误:无法找到驱动程序PostgreSQL。看着:
   *全局命名空间
   *在名为PostgreSQL的包中    *在名为RPostgreSQL的包中

我做错了什么?

4 个答案:

答案 0 :(得分:1)

drv <- DBI::dbDriver("PostgreSQL")

给了我同样的错误,但加载了RPostgreSQL

library("RPostgreSQL") 

在进行连接之前解决它。

答案 1 :(得分:0)

包装问题

import os
import PyQt5
include_files = [(os.path.dirname(PyQt5.__file__), "lib")]
packages = ["idna", "sys", "numpy", "pandas"]
options = {
    'build_exe': {
        'include_files':include_files,
        'packages':packages,
    },
}

使用此代码时,您必须包括使用驱动程序包的库,这样它不会给您带来错误,请使用此代码,我确信它会起作用

  drv <- DBI::dbDriver("PostgreSQL")

这将解决您的问题

答案 2 :(得分:0)

在debian上遇到了同样的问题,得到了帮助:

apt-get -y install r-cran-rpostgresql

答案 3 :(得分:0)

在编写软件包时,我遇到了类似的问题,并且受到以上发现的答案的启发:

const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');
const session = require('express-session');
const user = require('../components/user');

let sess;

router.post('/createUser', (req, res) => {
    user
        .createUser({
            username: req.body.username,
            password: req.body.password,
            email: req.body.email
        })
        .then(() => res.sendStatus(200))
});
router.post('/login', (req, res) => {
  sess = req.session;
    user
        .authenticate({
            username: req.body.username,
            password: req.body.password
        })
        .then(({ success, user }) => {
            if (success) {res.sendStatus(200); sess.userID = user;}
            else res.sendStatus(401)
        })
});

router.post('/auth', (req, res) => {
  sess = req.session;
    if (sess.userID === undefined){
      res.redirect('/');
    }else{
      res.sendStatus(200);
    }
});

router.post('/auth/logout', (req, res) => {
  sess = req.session;
  sess.userID = undefined;
  res.redirect('/');
});

router.post('/auth/createCheck', (req, res) => {
  sess = req.session;
  console.log(sess.userID);
    if (!sess.userID === undefined){
      res.redirect('/');
    }else{
      res.sendStatus(200);
    }
});


module.exports = router;

使用#' @import RPostgreSQL 的所有函数的顶部均已解决问题。