小编Vic*_* K.的帖子

更改SQLite默认设置

我们知道什么时候.mode column让我看到像列.headers on这样的表格,我们可以看到表格的标题.但是我想知道是否有任何方法可以进行两种默认设置?

做一些修改sqlite的源代码?? 或者是否有这些设置的配置文件?

sqlite

82
推荐指数
2
解决办法
2万
查看次数

非贪婪的字符串正则表达式匹配

我很确定我在这里遗漏了一些明显的东西,但是我不能让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)

regex r stringr

23
推荐指数
2
解决办法
8961
查看次数

在数据库行中在Golang中创建一个Map

基本上在执行查询之后我想获取结果行并生成一个[]map[string]interface{},但我不知道如何使用API​​执行此操作,因为该Rows.Scan()函数需要一个特定数量的参数来匹配所请求的列数(可能还有类型)以及)正确获取数据.

同样,我想概括这个调用并接受任何查询并将其转换为a []map[string]interface{},其中map包含映射到该行的值的列名.

这可能非常低效,我计划稍后更改结构,这interface{}是单个数据点的结构.

我如何仅使用database/sql包,或者如果需要使用database/sql/driver包?

database variadic-functions go

23
推荐指数
1
解决办法
2万
查看次数

将函数应用于data.table的每一行

我正在寻找一种方法来有效地将函数应用于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)

以下 …

r data.table

19
推荐指数
2
解决办法
1万
查看次数

从Mac/Linux上的R连接到MS SQL Server

我正在尝试从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)

r rjdbc

12
推荐指数
2
解决办法
1万
查看次数

在为每个请求创建与MS SQL数据库的新RJDBC连接时是否存在性能/其他缺点?

我想了解(重新)通过RJDBC使用SQL连接到MS SQL数据库的最佳实践.

我可以想象三种可能的情况:

  1. 将连接存储在全局变量中,初始化一次,在代码中的任何位置使用它
  2. 为每个请求创建一个新连接
  3. 做一些更复杂的事情,例如预先填充一个开放连接池,并根据需要(重新)使用池中的连接.

我在一个有几十个客户端的闪亮应用程序中使用我的代码,如果我使用方法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包中的数据库连接

sql sql-server r shiny rjdbc

11
推荐指数
1
解决办法
856
查看次数

如何在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做到这一点?我可以使用构面将这些单独的图形一个接一个地绘制下来吗?

charts r bar-chart ggplot2

9
推荐指数
1
解决办法
3万
查看次数

data.table没有两列正确汇总

我有这个问题,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)

r data.table

7
推荐指数
2
解决办法
295
查看次数

如何使用ggplot2的x轴日期注释?

我在理解轴上带有日期的绘图之间的区别时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)

r ggplot2

5
推荐指数
1
解决办法
4790
查看次数

用ggplot2进行元编程

我一直在努力减少制作大量图表所需的复制和粘贴量,这些图表的功能/切片数据略有不同.

这是我想要做的简化示例:

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)

r ggplot2 data.table

4
推荐指数
2
解决办法
572
查看次数

如何强制更新用户位置?

我需要获取当前用户位置,但我不知道它是否已更改.我可以从CLLocationManager请求强制位置更新吗?或者还有其他方法吗?

iphone cocoa-touch core-location mapkit ios

3
推荐指数
1
解决办法
4226
查看次数