sqldf和RMySQL都是R包,允许访问MySQL数据库(前者使用后者).它们都允许这样的语句:
RMySQL:"运行任意SQL语句并提取其所有输出(返回data.frame):"
dbGetQuery(con, "select count(*) from a_table")
dbGetQuery(con, "select * from a_table")
Run Code Online (Sandbox Code Playgroud)
sqldf:
library(sqldf)
sqldf("select * from iris limit 5")
sqldf("select count(*) from iris")
sqldf("select Species, count(*) from iris group by Species")
# create a data frame
DF <- data.frame(a = 1:5, b = letters[1:5])
Run Code Online (Sandbox Code Playgroud)
那有什么区别?sqldf提供的RMySQL没有提供什么?
我有一段时间在 R 中,我想写入 DATETIME 列中的 MySQL 表。我怎样才能做到这一点?如果我将其格式化为字符串 SQL 无法识别它;如果我使用as.POSIXltSQL 仍然无法识别它。
我只是使用标准dbConnect和dbWriteTable语句,它们适用于非日期就好了。
我在CENTOS 6.5上成功安装了InifiniDB.InfiniDB是一个与MySQL"兼容"的柱状数据库(相同的端口等:我甚至设法安装了最新版本的MySQLWorkbench,并且工作有一个InifiniDB的魅力 - 相信只处理另一个MySQL安装).
安装没有MySQL,因为我不需要它:)
我试图从RStudio Server安装RMySQL,但我无法安装:安装期望在某处找到MySQL的副本而我没有.
请参阅下面的安装日志.我把:/ usr/local/Calpont/mysql/bin放在我的PATH中,但这没有任何效果.
请考虑一下这个灵感来自InfiniDB本身:请参阅http://infinidb.co/system/files/Calpont%20InfiniDB_Quick%20Start_for%20R.pdf 我认为比较错误和InfiniDB文件的主要问题是他们建议创建以下全局变量:
(From InfiniDB paper) RMySQL must be configured with the correct MySQL directory
(which comes with InfiniDB) and the developer library directory.
o Example in Ubuntu or CentOS:
export MYSQL_INC=”/usr/include/mysql/”
export MYSQL_LIB=”/usr/local/Calpont/mysql/lib/mysql”
Run Code Online (Sandbox Code Playgroud)
但我在CENTOS上的安装在/ usr/include/mysql /上没有mysql文件夹.
有什么建议?
==============
Installing package into ‘/usr/lib64/R/library’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/RMySQL_0.9-3.tar.gz'
Content type 'application/x-gzip' length 165363 bytes (161 Kb)
opened URL
==================================================
downloaded 161 Kb
* installing *source* package ‘RMySQL’ ...
** …Run Code Online (Sandbox Code Playgroud) 我在发布这个闪亮的应用程序时遇到了一些问题。对于我的问题,我认为 ui.R 不相关。这是服务器.R:
library(shiny)
library(RMySQL)
library(tidyverse)
library(colorspace)
library(ggplot2)
### CONNECT AND QUERY THE DATABASE
### uncomment the next line to reconnect to server & re-query the database
source("http://www.mvabl.com/Dashrock/MySQL_connect_query.R")
con <- dbConnect(MySQL(),
user = 'shiny_apps',
password = '####',
host = 'mysql.mvabl.com',
dbname='sandbox191')
qmain <- dbSendQuery(con, "SELECT * FROM sizes;")
sizes <- as.data.frame(dbFetch(qmain,n=-1),na.rm=TRUE)
### GENERATE GGPLOT
colors17 <- c("#9D8FAC","#8E96B0","#7F9BB0","#71A0AD","#67A5A7","#63A89E","#64AB94","#6BAC88","#77AD7B","#85AD70","#94AC66","#A4AA5F","#B5A75B","#C4A35B","#D39F5F","#DF9C67","#E99872")
colors6 <- c("#9D8FAC","#6FA1AC","#66AB8F","#8EAC6A","#C1A45A","#E99872")
sizes$Size_Cat <- factor(sizes$Size_Cat,
levels = c("n1_4","n5_9","n10_19",
"n20_49","n50_99","n100_249",
"n250_499","n500_999","n1000",
"n1000_1","n1000_2","n1000_3",
"n1000_4"))
sizes$market <- factor(sizes$market,
levels = c("NYC","LA","CHI","DC","SF","BOS"))
sizes <- sizes %>% …Run Code Online (Sandbox Code Playgroud) 我有一个利用连接到 Amazon RDS 的 RMySQL 库的 R 脚本。该脚本最初会在运行该函数之前连接到 RDS。在函数内部,查询RDS上的MySQL,然后执行Sys.sleep命令,持续24小时(86400秒),然后恢复。因为 Amazon 的 RDS wait_timeout 参数设置为 8 小时 (28800),这会导致我的 R 控制台中出现此错误:
Error in .local(conn, statement, ...) :
could not run statement: MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)
我不能这样做,所以我尝试了以下代码:
duration <- 86400
con <- dbConnect(MySQL(),
user = passwordFile$user[1],
password = passwordFile$password[1],
host = passwordFile$host[1],
dbname = passwordFile$dbname[1])
query <- function(...) dbGetQuery(con, ...)
testing <- function(){
test1 <- query("SELECT * FROM a_log")
print(test1)
dbDisconnect(con)
Sys.sleep(duration)
con <- dbConnect(MySQL(),
user = passwordFile$user[1],
password = passwordFile$password[1],
host …Run Code Online (Sandbox Code Playgroud) 我想做的只是一个简单的均值,如果(就像在Excel中的命令平均值一样)。我正在使用data.tables来提高效率,因为我有相当大的表(〜1m行)。
我的目的是查找
Table 1
| individual id | date |
-------------------------------
| 1 | 2018-01-02 |
| 1 | 2018-01-03 |
| 2 | 2018-01-02 |
| 2 | 2018-01-03 |
Table 2
| individual id | date2 | alpha |
---------------------------------------
| 1 | 2018-01-02 | 1 |
| 1 | 2018-01-04 | 1.5 |
| 1 | 2018-01-05 | 1 |
| 2 | 2018-01-01 | 2 |
| 2 | 2018-01-02 | 1 |
| 2 | …Run Code Online (Sandbox Code Playgroud) r ×6
rmysql ×6
data.table ×1
function ×1
infinidb ×1
mysql ×1
scoping ×1
shiny ×1
shiny-server ×1
sqldf ×1