我只是下载了一个名为sqldf的R包,只是为了好玩,但到目前为止还不能正确运行它。当我尝试使用iris数据集执行一些查询时:
sqldf("select * from iris limit 5")
出现错误,声明为Error in mysqlNewConnection(drv, ...) : RS-DBI driver: (Failed to connect to database: Error: Access denied for user 'myUserName'@'localhost' (using password: NO) ) E
我在R中有一个项目,我已经运行了大约一天,它只完成了10 %。慢的主要来源是必须使用R包sqldf(SELECT ...)从长度为100万的数据集中调用数千次sqldf。我的select语句目前采用以下形式:
sqldf(SELECT V1, V2, FROM mytable WHERE cast(start as real) <= sometime and cast(realized as real) > sometime)
sometime只是一个表示unix时间戳的整数,而start和realized是mytable的列,其中还填充了unix时间戳条目。不过,我另外知道的是,
我将csv文件加载到我的R中,当我尝试使用sqldf选择某个列时,它总是转到
Error in .local(drv, ...) :
Failed to connect to database: Error: Access denied for user
'User'@'localhost' (using password: NO)
Error in !dbPreExists : invalid argument type
我不知道怎么修好它。
这是我的剧本:
library("RMySQL")
library(sqldf)
acs&
我尝试用R语言(3.6)的批处理方式从数据帧中选择特定数据,但失败了。
当我用
sqldf("select * from Interact where miRNA = 'hsa-miR-510-5p' and
Seqname ='chr3:195780289-195787118-' ")
结果没问题。
当我试着
sqldf("select * from Interact where miRNA = Interpairs[1,1] and
Seqname =Interpairs[1,2]"),
或
s
我目前有以下SQL查询:
SELECT sector, COUNT(sector)
FROM clients
GROUP BY sector
ORDER BY COUNT(sector) DESC LIMIT 3;
因此,我试图从sequences转到tidyverse,但在尝试运行某些序列时遇到了困难,因为这显然不是那么简单(至少对我来说不是这样)。
所以我想知道是否有人能帮我。
这只是一个basic查询,它来自一个单表,在该表中,我必须看到有多少客户端是某个扇区。
在R中它的等价性是什么?
有人能帮我吗?
直到现在,我一直在我的R脚本中使用sqldf,直到我收到以下错误:
library(sqldf)
data(mtcars)
out <- sqldf("SELECT * FROM mtcars")
> Error in rsqlite_send_query(conn@ptr, statement) : no such table: mtcars
在此之前这还不是一个问题,有人知道问题出在哪里吗?
我通常使用像is.na和COALESCE这样的函数,但是我找不到诸如R的SQLDF的函数,这使得它的使用变得很困难,因为数据混乱,缺少值。在操作中出现NAs时,是否有方法强制SQLDF返回NA?
如何使用SQLDF处理丢失的值和NAs?
> sqldf('SELECT NA/13210')
Exception: no such column: NA
Show stack trace
> sqldf('SELECT NA/13210, 223423/NA')
Exception: no such column: NA
Show stack trac
我有一些类似这样的问题:
sqldf("select TenScore from data where State_P = 'AndhraPradesh'")
但是我在一个变量stateValue中有"AndhraPradesh"。如何在R中的select查询中使用此变量以获得与上面相同的结果。
请给我看看语法。
我正在使用sqldf包在R中对SQL进行一些实验。我正在尝试测试一些命令来检查输出,特别是尝试创建表。
在这里,代码:
sqldf("CREATE TABLE tbl1 AS
SELECT cut
FROM diamonds")
非常简单的代码,但是我得到了这个错误
sqldf("CREATE TABLE tbl1 AS
+ SELECT cut
+ FROM diamonds")
data frame with 0 columns and 0 rows
Warning message:
In result_fetch(r
我对使用SQL语句相当陌生,在使用SQL语句从大型表中选择所需列并将它们拖到R中时遇到了一些小问题。
我想取一个csv文件并将选定的列读入r中,特别是每9和10列一次。在R中,类似于:
read.csv.sql("myfile.csv", sql(select * from file [EVERY 9th and 10th COLUMN])
我在互联网上的搜索表明,选择第n行可以使用这样的使用MOD的SQL语句来完成(如果我错了,请纠正我):
"SELECT *
FROM file
WHERE (ROWID,0) IN (SELEC
我已经使用sqldf包很长一段时间了,它使用的是默认的SQLite驱动器。
但是,现在我想利用PostgreSQL的窗口函数。我已经安装了RPostgresSQL,我认为我正确地使用了sqldf文档指定的选项。但是,即使我尝试执行一个简单的查询,指定或不指定驱动器和dbname,也会返回一条错误消息:
library(RPostgreSQL)
library(sqldf) # the R console returns "sqldf will default to using PostgreSQL"
df = data.frame(color=c("red",
我有许多.csv文件。某些列出现在所有文件中,但其他一些列仅出现在某些文件中。还有许多其他我不想要的专栏。 我使用R遍历.csv文件,选择所需的列,并将其写入一个新的.csv文件。但是,我不知道如何告诉sqldf在某些.csv文件中可能找不到某些列,在这种情况下,我无论如何都希望它创建它(即使它将是空的)。 在下面的示例中,列userlocation1仅出现在某些.csv文件中。因此,如果文件没有它,代码就不能工作。 我尝试过try-catch,但这只是导致一些文件根本不被处理。 for (fileNumber in fileNumbers){
newfileName <- pas
如何在R中执行复杂操作(即不是equi-join)?
例如,假设我们有以下数据:
B <- data.frame(m = 1:100, x = rnorm(100))
A <- data.frame(id = 1:200, m0 = sample(B$m, 200, replace = TRUE))
A$m1 <- A$m0 + sample(1:20, nrow(A), replace = TRUE)
然后在SQL中可以这样做:
SELECT A.id, SUM(B.x)
FROM A
JOIN B ON B.m BETWEEN A.m0 AND A.m1
GROUP BY
您好,我有以下读取形状文件的代码
states.shp<-readShapeSpatial("elpo12p010g.shp")
#trying to subset just one state from the loaded file
az_election_results<-sqldf("select * from states.shp where STATE_NAME='AZ'")
当我运行代码时,它显示states.shp表不存在。我在R中看到了states.shp作为值数据类型,我可以在values窗口中看到它,但不确定为什
我正在尝试使用R中的Sql用空白替换NA。我使用了下面的代码,但我仍然得到"NA“而不是空白! DF_TEST_PN <- sqldf("Select *,Case when Proj_Loess ='NA‘then’‘else Proj_Loess end as New_Proj_Loess From Test")
我是新的R-有一个特殊的字符(')使用sqldf包的问题。
df <- sqldf("select * FROM data WHERE Account in (‘I can’t validate account') ")
我不能在处理(')不能,有人能帮忙吗?尝试了各种组合的单引号,双引号和\-没有工作。谢谢你的帮助。
我试图使用sqldf将行插入到现有的(但为空的)数据rows中,并得到一个奇怪的错误。
这是我的代码:
set.seed(1)
library(sqldf)
# define empty dataframe
d1 = data.frame(min_x=numeric(), max_x=numeric())
# create a data frame of random numbers
d2 = data.frame(x=runif(10))
# This works fine
sqldf("select min(x), max(x) from d2")
# But,
我希望能够将keywordN下面的输入替换为tiab LIKE '%keywordN%',以便能够将关键字输入转换为R中的SQL字符串。关键字是单词或单词的组合,例如:((ELISA) OR (antibody test) AND (blood))
input = "((keyword1) OR (keyword2) AND (keyword3))"
至:
output = "((tiab LIKE '%keyword1%') OR (tiab LIKE '%keyword2%') AND (tiab like '
到目前为止,我一直在使用Sqldf和R函数的组合来管理我的数据集。但是,我需要在大型数据集上执行大量的左连接,而且即使使用sqldf dbname=tempfile()也会开始耗尽内存。
我注意到FF的第一件事是我不能把它传递给sqldf。我注意到的第二件事是,我的典型函数并不都在ff中工作。
我的普通连接示例
base <- read.csv(filename)
base <- sqldf("select * from base where DATE > 20120101")
for (j in list.files()){
temp <- r
我正在使用sqldf来培训一些使用SQL的r-用户。在加载RPostgreSQL或RH2之前加载sqldf将更改sqldf使用的默认SQL。这在h2中很好,但是每次我加载RPostgreSQL时,R都会在第一次尝试查询时崩溃。我想让sqldf与RPostgreSQL一起工作,以便能够使用SQLite和h2中缺少的date函数。
# packages
library(tidyverse)
# library(RH2) # comment out this row or the next to determine default SQL for sqldf
library(RPostgreSQL)
我有一个将来要解析的值列表。暂时确保该查询的格式是正确的。我有一个疑问:
var2 = "Application Maintenance"
r = fn$sqldf("Select Iteration, (SUM(Hours) / SUM(Effort)) as Efficiency
From df WHERE Iteration = $var2")
query = sprintf('Select Iteration, (SUM(Hours) / SUM(Effort))
as Efficiency from df WHERE Iter
由于sqldf中不支持的字符,R给了我一个错误,例如当我键入以下内容时: sqldf("select *,
case symptom
when 'Bell's palsy' or 'Facial pain' or 'Facial paralysis' then 'neuropathy'
end as Adverse_event from data") 该错误是由于钟声中的"'"引起的。有什么工作可以绕过这个错误吗?并且在数据中正确地捕捉到这种发生。