小编jam*_*rta的帖子

通过数字索引在data.table中选择多个列

我们如何使用其数字索引(位置)的向量选择多个列data.table

这就是我们如何处理data.frame:

df <- data.frame(a = 1, b = 2, c = 3)
df[ , 2:3]
#   b c
# 1 2 3
Run Code Online (Sandbox Code Playgroud)

r data.table

139
推荐指数
4
解决办法
16万
查看次数

ggplot geom_bar vs geom_histogram

ggplot中geom_bar和geom_histogram之间有什么区别(如果有的话)?它们似乎产生相同的图并采用相同的参数.

r ggplot2

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

外联接data.table R.

只是想知道是否有一种有效的方法来与数据表进行外连接,例如

a <- data.table(a=c(1,2,3),b=c(3,4,5))
b <- data.table(a=c(1,2),k=c(1,2))
merge(a,b,by="a",all.x=T)
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但它没有内部连接那么高效,因为下面的运行速度非常快,但上面的速度非常慢.

setkey(a,a)
setkey(b,a)
a[b,]
Run Code Online (Sandbox Code Playgroud)

r data.table

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

在多个图中重用ggplot图层

我正在绘制大量基本上使用相同类型格式的图表.只是想知道是否可以将这些图层存储在变量中并重用它们.

方法1(不起作用)

t <- layer1() + layer2()
ggplot(df,aes(x,y)) + t
Run Code Online (Sandbox Code Playgroud)

方法2(工作但不是很优雅)

t <- function(x) x + layer1() + layer2()
t(ggplot(df,aes(x,y))
Run Code Online (Sandbox Code Playgroud)

方法1的任何建议都是如此?

谢谢!

r ggplot2

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

如何获取data.table分组中当前组的长度?

我知道这可以通过其他软件包实现,但我正在努力data.table(因为它似乎是分组最快).

library(data.table)
dt = data.table(a=c(1,2,2,3))
dt[,length(a),by=a]
Run Code Online (Sandbox Code Playgroud)

结果是

   a V1
1: 1  1
2: 2  1
3: 3  1
Run Code Online (Sandbox Code Playgroud)

df = data.frame(a=c(1,2,2,3))
ddply(df,.(a),summarise,V1=length(a))
Run Code Online (Sandbox Code Playgroud)

产生

  a V1
1 1  1
2 2  2
3 3  1
Run Code Online (Sandbox Code Playgroud)

这是一个更明智的结果.只是想知道为什么data.table不给出相同的结果,以及如何实现这一目标.

grouping r data.table

10
推荐指数
1
解决办法
4112
查看次数

拆分data.table

我有一个data.table,我想分成两个.我这样做如下:

dt <- data.table(a=c(1,2,3,3),b=c(1,1,2,2))
sdt <- split(dt,dt$b==2)
Run Code Online (Sandbox Code Playgroud)

但如果我想将这样的事情作为下一步

sdt[[1]][,c:=.N,by=a]
Run Code Online (Sandbox Code Playgroud)

我收到以下警告信息.

警告消息:在[.data.table(sdt [[1]] ,, :=(c,.N),by = a):通过获取整个表的副本检测并修复无效的.internal.selfref,以便:=可以添加这个新的列引用.在较早的时候,这个data.table已经被R复制了.避免键< - ,名称< - 和attr < - 当前(并且奇怪地)在R中可以复制整个data.table.使用set*语法来避免复制:setkey(),setnames()和setattr().此外,list(DT1,DT2)将复制整个DT1和DT2(R的list()复制命名对象),如果需要(将被实现)使用reflist().如果此消息没有帮助,请向datatable-help报告,以便修复根本原因.

只是想知道是否有更好的方法来分割表,以便它更有效(并且不会得到这个消息)?

r data.table

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

按非NA值合并两个向量

可能重复:
逐个元素组合两个向量

我有两个向量

d = c(1, 2, NA, NA)
c = c(NA, NA, 1, NA)
Run Code Online (Sandbox Code Playgroud)

如何获得将非NA组合的输出如下?

[1] 1 2  1 NA
Run Code Online (Sandbox Code Playgroud)

谢谢

r vector na

8
推荐指数
2
解决办法
3372
查看次数

HTML ipywidgets状态不会随笔记本一起保存

我使用ipywidgets来显示进程的异步结果.

import ipywidgets as widgets

results = widgets.HTML()
display(results)
Run Code Online (Sandbox Code Playgroud)

它运行良好,结果显示正确,但是当保存笔记本时,小部件不再存在.有没有办法用笔记本保存它们?

jupyter-notebook ipywidgets

8
推荐指数
1
解决办法
558
查看次数

使用函数duplicated()时,返回FALSE表示重复的NA值

只是想知道为什么重复行为与NAs一样:

> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE  TRUE  TRUE FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

事实上

> NA == NA
[1] NA
Run Code Online (Sandbox Code Playgroud)

有没有办法实现重复标记NAs为假,像这样?

> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE  FALSE  FALSE FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

comparison r duplicates missing-data

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

拆分包含Hive中分号的字符串

如何在hive中实现拆分由分号分隔的字符串字段?

select split(f1,";")[0] from table;
Run Code Online (Sandbox Code Playgroud)

hive

6
推荐指数
2
解决办法
6069
查看次数