小编Mic*_*ele的帖子

SQL Server RODBC连接

有没有人有一个连接字符串示例使用RODBC并连接到MS SQL Server 2005或2008.

谢谢.

r rodbc

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

在data.table对象的末尾按引用添加行

在这个问题中,data.table包创建者解释了为什么行不能通过引用在中间插入(或删除)data.table.他还指出,这种操作可以在表格末尾进行.你能展示一个代码来完成这个动作吗?它将是"参考"版本

a<- data.table(id=letters[1:2], var=1:2)
> a
   id var
1:  a   1
2:  b   2
> rbind(a, data.table(id="c", var=3))
   id var
1:  a   1
2:  b   2
3:  c   3
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:

既然不可能采用适当的解决方案,那么从速度和内存使用情况来看,下列哪一项更好(如果内部不同,不确定)?

rbind(a, data.table(id="c", var=3))

rbindlist(list(a,  data.table(id="c", var=3)))
Run Code Online (Sandbox Code Playgroud)

最终还有其他(更好)的方法吗?

r data.table

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

expand.grid的非冗余版本

R函数expand.grid返回所提供参数的元素之间的所有可能组合.例如

> expand.grid(c("aa", "ab", "cc"), c("aa", "ab", "cc"))
  Var1 Var2
1   aa   aa
2   ab   aa
3   cc   aa
4   aa   ab
5   ab   ab
6   cc   ab
7   aa   cc
8   ab   cc
9   cc   cc
Run Code Online (Sandbox Code Playgroud)

你知道一种直接获得的有效方法(所以没有任何行比较之后expand.grid)只提供所提供的矢量之间的"唯一"组合吗?输出将是

  Var1 Var2
1   aa   aa
2   ab   aa
3   cc   aa
5   ab   ab
6   cc   ab
9   cc   cc
Run Code Online (Sandbox Code Playgroud)

编辑每个元素与自身的组合最终可以从答案中丢弃.我实际上并不需要它在我的程序中,即使(数学上)aa aa将是一个元素Var1和另一个元素之间的一个(常规)唯一组合var2.

解决方案需要从两个向量生成元素对(即每个输入向量中的一个 - 以便它可以应用于多于2个输入)

combinations r

34
推荐指数
6
解决办法
1万
查看次数

在data.table列中使用列表

In data.table可能有类型的列,list我第一次尝试从此功能中受益.我需要为我的表的每一行存储dt从rApache Web服务获取的几条注释.每条评论都有一个用户名,日期时间和正文项.

而不是使用带有一些奇怪的,不寻常的字符的长字符串来将每个消息与其他消息分开(例如|),并且;要分隔评论中的每个项目,我想使用这样的列表:

library(data.table)
dt <- data.table(id=1:2,
        comment=list(list(
            list(username="michele", date=Sys.time(), message="hello"),
            list(username="michele", date=Sys.time(), message="world")),
          list(
            list(username="michele", date=Sys.time(), message="hello"),
            list(username="michele", date=Sys.time(), message="world"))))

> dt
   id comment
1:  1  <list>
2:  2  <list>
Run Code Online (Sandbox Code Playgroud)

存储为一个特定行添加的所有注释.(也因为JSON当我需要将其发送回用户界面时,将更容易转换为以后)

但是,当我尝试模拟在生产过程中我将如何填充表格时(向特定行添加单个注释),R要么崩溃,要么不分配我想要的然后崩溃:

library(data.table)

> library(data.table)
> dt <- data.table(id=1:2, comment=vector(mode="list", length=2))
> dt$comment
[[1]]
NULL

[[2]]
NULL

> dt[1L, comment := 1] # this works
> dt$comment
[[1]]
[1] 1

[[2]]
NULL

> set(dt, 1L, …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

从github下载master.zip安装R包

我的连接可能有一些问题(某种块,dunno),我无法直接安装表单 gitHub

> install_github("assertthat")
Installing github repo(s) assertthat/master from hadley
Installing assertthat.zip from https://github.com/hadley/assertthat/archive/master.zip
Run Code Online (Sandbox Code Playgroud)

我尝试了很多其他包,结果相同.但是,我可以master.zip从浏览器下载.你能告诉我是否可以直接安装.zip?谢谢.

r github

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

将值分配给特定的data.table列和行

仍然了解这个伟大的包...有谁能解释我这个错误的原因?谢谢!

library(data.table)

DT <- data.table(id   = LETTERS,
                 var1 = rnorm(26),
                 var2 = rnorm(26))

> DT[2, list(var1, var2)]
            var1          var2
1: -0.8628479332 -0.2367492928
> DT[2, c(var1, var2)]
[1] -0.8628479332 -0.2367492928
> 
> DT[2, list(var1, var2)] <- DT[8, list(var1, var2)]
Error in `[<-.data.table`(`*tmp*`, 2, list(var1, var2), value = list(var1 = -0.394006912428776,  : 
  object 'var1' not found
> DT[2, c(var1, var2)] <- DT[8, c(var1, var2)]
Error in `[<-.data.table`(`*tmp*`, 2, c(var1, var2), value = c(-0.394006912428776,  : 
  object 'var1' not found
Run Code Online (Sandbox Code Playgroud)

r data.table

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

是时候从data.table和data.frame对象中获取单个元素了

在我的工作中,我使用了几个表(客户详细信息,交易记录等).其中一些是非常大的(数百万行),我最近切换到data.table包(感谢马修).但是,它们中的一些非常小(几百行和4/5列),并被称为几次.因此,我开始考虑检索数据的[.data.table开销,而不是像已经清楚描述的那样设置()ting值,其中,无论表的大小如何设置在2微秒左右(取决于cpu).?set

但是,它似乎不等于setdata.table知道确切的行和列获取值.一种loopable [.data.table.

library(data.table)
library(microbenchmark)

m = matrix(1,nrow=100000,ncol=100)
DF = as.data.frame(m)
DT = as.data.table(m)  # same data used in ?set

> microbenchmark(DF[3450,1] , DT[3450, V1], times=1000) # much more overhead in DT

Unit: microseconds
expr     min      lq   median      uq      max neval
DF[3450, 1]  32.745  36.166  40.5645  43.497  193.533  1000
DT[3450, V1] 788.791 803.453 813.2270 832.287 5826.982  1000

> microbenchmark(DF$V1[3450], DT[3450, 1, with=F], times=1000)  # using atomic vector …
Run Code Online (Sandbox Code Playgroud)

performance r dataframe data.table

17
推荐指数
1
解决办法
648
查看次数

ggplot2中相同图例中的不同图例键

假设我不需要"正确的"变量映射,但仍希望使用图例键来帮助理解图表.我的实际数据类似于以下df

df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))

library(ggplot2)

ggplot(df) +
  geom_line(aes(id, line, colour = "line")) +
  geom_point(aes(id, points, colour = "points"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

基本上,我希望传说键相对于points......只是一个点,没有中间的线.我接近这个:

library(reshape2)

df <- melt(df, id.vars="id")

ggplot() +
  geom_point(aes(id, value, shape = variable), df[df$variable=="points",]) +
  geom_line(aes(id, value, colour = variable), df[df$variable=="line",])
Run Code Online (Sandbox Code Playgroud)

但它定义了两个独立的传说.修复第二个代码(并且必须重塑我的数据)也没关系,但我更喜欢一种方法(如果有的话)手动更改任何图例键(并继续使用第一个approch).谢谢!

编辑:

谢谢@alexwhan你更新了我对变量映射的记忆.但是,到目前为止我最简单的方法仍然是以下(非常糟糕的黑客!):

df <- data.frame(id = 1:10, line = rnorm(10), points = rnorm(10))

ggplot(df) +
  geom_line(aes(id, line, colour = "line")) +
  geom_point(aes(id, points, shape = "points")) +
  theme(legend.title=element_blank())
Run Code Online (Sandbox Code Playgroud)

这只是隐藏了两个不同 …

r ggplot2 legend-properties

16
推荐指数
2
解决办法
6806
查看次数

data.table中的.internal.selfref无效

我需要指定一个"第二个"id来将原始内容中的某些值分组id.这是我的样本数据:

dt<-structure(list(id = c("aaaa", "aaaa", "aaas", "aaas", "bbbb", "bbbb"),
                   period = c("start", "end", "start", "end", "start", "end"),
                   date = structure(c(15401L, 15401L, 15581L, 15762L, 15430L, 15747L), class = c("IDate", "Date"))),
              class = c("data.table", "data.frame"),
              .Names = c("id", "period", "date"),
              sorted = "id")
> dt
     id period       date
1: aaaa  start 2012-03-02
2: aaaa    end 2012-03-05
3: aaas  start 2012-08-21
4: aaas    end 2013-02-25
5: bbbb  start 2012-03-31
6: bbbb    end 2013-02-11
Run Code Online (Sandbox Code Playgroud)

id需要id2根据此列表进行分组(使用相同的值):

> groups
[[1]] …
Run Code Online (Sandbox Code Playgroud)

r data.table

14
推荐指数
3
解决办法
3332
查看次数

从github安装包时出错

我无法从github安装包:

> install_github('cranvas', 'ggobi', args="--no-multiarch")
Installing github repo(s) cranvas/master from ggobi
Installing cranvas.zip from https://github.com/ggobi/cranvas/archive/master.zip
Error in function (type, msg, asError = TRUE)  : couldn't connect to host
Run Code Online (Sandbox Code Playgroud)

这是我的会议:

R version 3.0.1 (2013-05-16)
Platform: x86_64-pc-linux-gnu (64-bit)
Run Code Online (Sandbox Code Playgroud)

NB:install.packages像往常一样工作,只是与github问题.有没有人遇到过这个?谢谢

r github

11
推荐指数
2
解决办法
8913
查看次数