我们知道什么时候.mode column让我看到像列.headers on这样的表格,我们可以看到表格的标题.但是我想知道是否有任何方法可以进行两种默认设置?
做一些修改sqlite的源代码?? 或者是否有这些设置的配置文件?
我很确定我在这里遗漏了一些明显的东西,但是我不能让R使用非贪婪的正则表达式:
> library(stringr)
> str_match('xxx aaaab yyy', "a.*?b")
[,1]
[1,] "aaaab"
Run Code Online (Sandbox Code Playgroud)
基本函数的行为方式相同:
> regexpr('a.*?b', 'xxx aaaab yyy')
[1] 5
attr(,"match.length")
[1] 5
attr(,"useBytes")
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
我希望这场比赛符合http://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html中的ab '贪婪'评论:
默认情况下,重复是贪婪的,因此使用最大可能的重复次数.这可以通过附加改为'minimal'吗?到量词.(还有其他量词允许近似匹配:请参阅TRE文档.)
有人可以解释一下发生了什么事吗?
更新.令人抓狂的是,在其他一些情况下,非贪婪模式的行为符合预期:
> str_match('xxx <a href="abc">link</a> yyy <h1>Header</h1>', '<a.*>')
[,1]
[1,] "<a href=\"abc\">link</a> yyy <h1>Header</h1>"
> str_match('xxx <a href="abc">link</a> yyy <h1>Header</h1>', '<a.*?>')
[,1]
[1,] "<a href=\"abc\">"
Run Code Online (Sandbox Code Playgroud) 基本上在执行查询之后我想获取结果行并生成一个[]map[string]interface{},但我不知道如何使用API执行此操作,因为该Rows.Scan()函数需要一个特定数量的参数来匹配所请求的列数(可能还有类型)以及)正确获取数据.
同样,我想概括这个调用并接受任何查询并将其转换为a []map[string]interface{},其中map包含映射到该行的值的列名.
这可能非常低效,我计划稍后更改结构,这interface{}是单个数据点的结构.
我如何仅使用database/sql包,或者如果需要使用database/sql/driver包?
我正在寻找一种方法来有效地将函数应用于data.table的每一行.让我们考虑以下数据表:
library(data.table)
library(stringr)
x <- data.table(a = c(1:3, 1), b = c('12 13', '14 15', '16 17', '18 19'))
> x
a b
1: 1 12 13
2: 2 14 15
3: 3 16 17
4: 1 18 19
Run Code Online (Sandbox Code Playgroud)
假设我想b按空格分割列的每个元素(从而为原始数据中的每一行产生两行)并连接结果数据表.对于上面的示例,我需要以下结果:
a V1
1: 1 12
2: 1 13
3: 2 14
4: 2 15
5: 3 16
6: 3 17
7: 1 18
8: 1 19
Run Code Online (Sandbox Code Playgroud)
如果列a只有唯一值,则以下内容将起作用:
x[, list(str_split(b, ' ')[[1]]), by = a]
Run Code Online (Sandbox Code Playgroud)
以下 …
我正在尝试从Mac/Linux上的R连接到Microsoft SQL Server,我遇到RJDBC问题.当我下载了Microsoft的驱动程序和JTDS时,但以下所有行都不起作用:
library(RJDBC)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
"/Users/victor/Downloads/sqljdbc_3.0/enu/sqljdbc4.jar")
drv1 <- JDBC('net.sourceforge.jtds.jdbc.Driver',
"/Users/victor/Downloads/jtds-1/jtds-1.3.0.jar")
Run Code Online (Sandbox Code Playgroud)
每一个都返回以下错误消息:
Error in .jfindClass(as.character(driverClass)[1]) : class not found
Run Code Online (Sandbox Code Playgroud)
我怀疑问题可能是错误的Java版本:我的默认java是
$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
Run Code Online (Sandbox Code Playgroud)
但是我的机器上也安装了Jave 1.6.我安装了SquirrelSQL并使用JTDS驱动程序连接到MS SQL Server没有任何问题; SquirrelSQL运行的Java版本是1.7.0.11.
我运行R CMD javareconf了以下结果:
$ R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.7.0_11
Java home path : /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: …Run Code Online (Sandbox Code Playgroud) 我想了解(重新)通过RJDBC使用SQL连接到MS SQL数据库的最佳实践.
我可以想象三种可能的情况:
我在一个有几十个客户端的闪亮应用程序中使用我的代码,如果我使用方法1,我担心会发生一些不好的事情.所以我使用方法2,使用下面的代码为每个请求创建一个新连接.
我可以看到这种方法的一些潜在缺点:性能,对数据库资源征税等等.但是,由于R是单线程的,即使在闪亮的使用场景中,我可能会过于谨慎吗?
所以我的具体问题是:
A.在我的闪亮应用程序中,我可以通过RJDBC安全地使用单个连接到MS SQL数据库吗?
B.上述方案2中是否存在任何真正的缺点(内存泄漏,性能等)?
NewConnection <- function() {
file = NULL
# make it work on three different OSes - Linux, MacOS, Windows
for (path in c('/Users/victor/Documents/R/sqljdbc_3.0/enu/sqljdbc4.jar',
'/home/oracle/sqljdbc_3.0/enu/sqljdbc4.jar',
'C:/Projects/jdbc/sqljdbc_4.0/enu/sqljdbc4.jar')) {
if (file.exists(path)) {
file = path
break
}
}
if (is.null(file))
return(NULL)
else {
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver", file)
passwd <- GetUserNamePassword()
conn <- dbConnect(drv, "jdbc:sqlserver://sql.server.address.com",
passwd$username, passwd$password)
return(conn)
}
}
Run Code Online (Sandbox Code Playgroud)
PS相关:如何管理R包中的数据库连接
我有以下图表
test <- data.frame(person=c("A", "B", "C", "D", "E"),
value1=c(100,150,120,80,150),
value2=c(25,30,45,30,30) ,
value3=c(100,120,150,150,200))
Run Code Online (Sandbox Code Playgroud)
我想为每个人绘制一个分组的条形图(水平),其中一个条形指示value1而另一个条形是堆栈的value2和value3.有没有办法用ggplot2做到这一点?我可以使用构面将这些单独的图形一个接一个地绘制下来吗?
我有这个问题,data.table最近让我发疯.它看起来像一个bug但可能是我在这里遗漏了一些明显的东西.
我有以下数据框:
# First some data
data <- data.table(structure(list(
month = structure(c(1356998400, 1356998400, 1356998400,
1359676800, 1354320000, 1359676800, 1359676800, 1356998400, 1356998400,
1354320000, 1354320000, 1354320000, 1359676800, 1359676800, 1359676800,
1356998400, 1359676800, 1359676800, 1356998400, 1359676800, 1359676800,
1359676800, 1359676800, 1354320000, 1354320000), class = c("POSIXct",
"POSIXt"), tzone = "UTC"),
portal = c(TRUE, TRUE, FALSE, TRUE,
TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE,
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE
),
satisfaction = c(10L, 10L, 10L, 9L, 10L, …Run Code Online (Sandbox Code Playgroud) 我在理解轴上带有日期的绘图之间的区别时geom_segment遇到问题。annotate(segment, ...)x
让我们从一些随机数据开始:
library(data.table)
library(lubridate)
library(ggplot2)
# Prepare some random data
set.seed(1234)
dt <- data.table(x = rnorm(365*5), d = seq(ymd(20130101), ymd(20131231), by = 86400))
dt.m <- dt[, list(total = sum(x)), by = list(month = floor_date(d, "month"))]
# Create a basic scatterplot chart
p <- qplot(month, total, data = dt.m)
Run Code Online (Sandbox Code Playgroud)
以下两项都可以工作并向上面定义的绘图添加一个线段p:
# Both of these work as expected and produce the same result
p + geom_segment(x = as.numeric(ymd(20130401)), xend = as.numeric(ymd(20130701)),
y = -10, yend …Run Code Online (Sandbox Code Playgroud) 我一直在努力减少制作大量图表所需的复制和粘贴量,这些图表的功能/切片数据略有不同.
这是我想要做的简化示例:
test <- data.table(a=c("x","y"), b=seq(1,3), c=rnorm(18))
fixedSlices <- function(input, rowfacet, colfacet, metric){
calc <- substitute(metric)
bygroup<-c(rowfacet,colfacet)
aggregates <- input[,eval(calc),by=bygroup]
ggplot(aggregates) + geom_point(stat="identity") + aes(x="", y=V1) + facet_grid(a ~ b)
}
fixedSlices(test, "a", "b", mean(c)) #works
dynamicSlices <- function(input, rowfacet, colfacet, metric){
calc <- substitute(metric)
bygroup<-c(rowfacet,colfacet)
aggregates <- input[,eval(calc),by=bygroup]
ggplot(aggregates) + geom_point(stat="identity") + aes(x="", y=V1) + facet_grid(eval(rowfacet) ~ eval(colfacet))
}
dynamicSlices(test, "a", "b", mean(c))
#Error in layout_base(data, rows, drop = drop) : At least one layer must contain all variables …Run Code Online (Sandbox Code Playgroud) 我需要获取当前用户位置,但我不知道它是否已更改.我可以从CLLocationManager请求强制位置更新吗?或者还有其他方法吗?