我正在附加,分离和重新附加RODBC和data.table.当我按此顺序使用这些包执行此过程时,我收到以下错误:
Error : .onLoad failed in loadNamespace() for 'data.table', details:
call: address(x)
error: object 'Caddress' not found
Run Code Online (Sandbox Code Playgroud)
我正在使用这些软件包的最新版本.这是我的初始会话信息:
R version 3.1.0 (2014-04-10)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Run Code Online (Sandbox Code Playgroud)
例
pkgs <- c('RODBC', 'data.table') # Note, c('data.table', 'RODBC') will work
for (pkg in pkgs) library(pkg, character.only=TRUE)
for (pkg in paste0('package:', pkgs)) detach(pkg, unload=TRUE, character.only=TRUE)
for (pkg …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个从MySQL服务器中提取数据的过程(使用RODBC包),对R中的数据执行一些统计例程,然后将生成的图保存回服务器,以便可以在Web浏览器中检索它们通过一点点的PHP和网络魔术.
我的计划是通过使用RODBC包来执行SQL插入语句,将绘图保存在MySQL BLOB字段中.我想我可以直接将数据作为字符串插入.问题是,我如何获取数据字符串,这甚至可以工作吗?我最好的想法是使用savePlot函数来保存临时文件,然后以某种方式将其读回.
有人曾经尝试过这个或者有关于如何处理这个问题的建议吗?
我正在尝试使用RODBC将数据从Oracle数据集市提取到R中.我已经能够解决我的一些问题,但我有一个基本问题.
如何保留数据库中的格式?
使用以下命令
uapp <- sqlQuery(ch, SQL, stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)
我的数据按预期检索,但是当它们应该是字符时,某些字段在R中转换为数字和逻辑一次.如果我使用,我可以解决这个问题:
uapp <- sqlQuery(ch, SQL, stringsAsFactors=F, as.is=T)
Run Code Online (Sandbox Code Playgroud)
但我"丢失"列格式化为我希望它们的日期.
我的数据库表看起来大致如下:
+-----+-------+--------------------+-----------+----------+
| ID1 | ID2 | FilePath1 | FilePath2 | Status |
+-----+-------+--------------------+-----------+----------+
| 1 | Test1 | MyFolder\R\Folder1 | NULL | Open |
| 2 | Test2 | MyFolder\R\Folder2 | NULL | Open |
| 3 | Test3 | MyFolder\R\Folder3 | NULL | Finished |
| 4 | Test4 | MyFolder\R\Folder4 | NULL | Finished |
+-----+-------+--------------------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)
第一列(ID1)定义为PK.但是,ID2也是独一无二的.
现在,我希望能够改变FilePath2并Status用,使用R sqlUpdate()从RODBC包.所以我尝试以下方法:
db.df <- data.frame(ID1=1, ID2='Test1',
FilePath2='MyFolder\R\Folder5', Status='Finished',
stringsAsFactors=FALSE)
sqlUpdate(myconn, db.df, tablename='mytable', index='ID2', …Run Code Online (Sandbox Code Playgroud) 我收到了一条警告信息:
`historicalHourly <- importHistoricalHourly(startDatePast,endDatePast,Markets,location)
[1] "Importing Hourly Data"
[1] "Flag - Moving from importHistoricalHourly to CleaningUpHourly"
[1] "Flag - Moving to importHistoricalDaily from CleaningUpHourly"Warning messages:
1: closing unused RODBC handle 41
2: closing unused RODBC handle 40
3: closing unused RODBC handle 36`
Run Code Online (Sandbox Code Playgroud)
在函数中,一切都检查返回值,print语句.我有一个想法,由于这个功能它肯定是一个警告:
hHourly.df <- retrievelim(PowerCodeID,columns,startDatePast,endDatePast,unitstr="Hours")
正在访问另一个程序中的单独数据库.此函数按小时返回dateTime值的数据帧,并在下一列中返回不同的数值
如果有人能让我知道为什么关闭数据库以及发生了什么,我将不胜感激.
我正在使用一个使用长SQL字符串的R脚本,我希望保持查询相对没有其他标记,以便允许在编辑器和应用程序之间进行复制和粘贴.我还希望能够跨行分割查询以提高可读性.
在RODBC文档中,该paste函数用于从单独的块中构建查询,但我更喜欢不那么笨拙且引号和逗号较少的东西.谢谢你的帮助.
我使用RODBC将数据框插入mySql数据库时遇到了一些困难.以下是我正在使用的代码:
data <- data.frame(analysedDataID=c(1,2,3), plateWell=c("a","b","c"), screenPlateOrder=c(1,2,3), wellData=c("A","B","C"))
con <- odbcConnect(DSN, uid="user_id", pwd="some_password")
query <- sqlSave(con, data, tablename = 'wellAnalysedDataTable', rownames=FALSE, append=TRUE)
Run Code Online (Sandbox Code Playgroud)
当我尝试执行此操作时,我收到以下错误消息:
Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test, :
missing columns in 'data'
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试将数据插入的特定表:
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| analysedDataID | int(10) | YES | | NULL | |
| plateWell | varchar(10) | YES | | NULL | |
| screenPlateOrder | int(10) | …Run Code Online (Sandbox Code Playgroud) 我在使用RODBC的sqlSave创建表时遇到了麻烦(或者更准确地说,是将数据写入创建的表).
这与现有的sqlSave问题/答案不同,如
我在Windows RDP上使用MS SQL Server 2008和64位R.
我有一个简单的数据框,只有1列满3个,4个或5个数字的整数.
> head(df)
colname
1 564
2 4336
3 24810
4 26206
5 26433
6 26553
Run Code Online (Sandbox Code Playgroud)
当我尝试使用sqlSave时,没有数据写入表.此外,一条错误消息使得它听起来像无法创建表,尽管该表确实创建了0行.
根据我发现的建议,我在运行sqlSave之前尝试关闭并重新打开RODBC连接.即使我使用append = TRUE,我也尝试在执行此操作之前删除表,但它不会影响任何内容.
> sqlSave(db3, df, table = "[Jason].[dbo].[df]", append = TRUE, rownames = FALSE)
Error in sqlSave(db3, df, table = "[Jason].[dbo].[df]", :
42S01 2714 [Microsoft][ODBC SQL Server Driver][SQL Server]There is already
an object named 'df' in the database.
[RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE [Jason].[dbo].[df]
("df" int)'
Run Code Online (Sandbox Code Playgroud)
一旦创建了表,我也尝试在表上使用sqlUpdate().如果我在R或SQL Server …
我试图从SQL数据库直接导入一些数据到R.我已经建立了连接而没有问题,但提取数据有点挑战.我会尝试尽可能清楚地说明这一点,因为我认为由于某些敏感信息我无法使其重现.当我运行以下行时,我得到了我想要的数据:
myconn <- odbcConnect("COMPANYNAME", uid = "support", pwd = "password111?")
sqlQuery(myconn, "SELECT * FROM Metrics")
Run Code Online (Sandbox Code Playgroud)
但是,当我包含一个我想从服务器中提取的特定数据库时,我遇到了一个问题:
sqlQuery(myconn, "USE companyname_clientname SELECT * FROM Metrics")
Run Code Online (Sandbox Code Playgroud)
companyname_clientname是数据库.我得到的不是我想要的数据
character(0)
Run Code Online (Sandbox Code Playgroud)
我知道引入"USE companyname_clientname"是个问题,我只是不知道为什么或如何解决它.如果有任何事情可以让你更容易帮助我告诉我,我会接受.