我们如何使用其数字索引(位置)的向量选择多个列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) ggplot中geom_bar和geom_histogram之间有什么区别(如果有的话)?它们似乎产生相同的图并采用相同的参数.
只是想知道是否有一种有效的方法来与数据表进行外连接,例如
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) 我正在绘制大量基本上使用相同类型格式的图表.只是想知道是否可以将这些图层存储在变量中并重用它们.
方法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的任何建议都是如此?
谢谢!
我知道这可以通过其他软件包实现,但我正在努力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不给出相同的结果,以及如何实现这一目标.
我有一个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报告,以便修复根本原因.
只是想知道是否有更好的方法来分割表,以便它更有效(并且不会得到这个消息)?
可能重复:
逐个元素组合两个向量
我有两个向量
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)
谢谢
我使用ipywidgets来显示进程的异步结果.
import ipywidgets as widgets
results = widgets.HTML()
display(results)
Run Code Online (Sandbox Code Playgroud)
它运行良好,结果显示正确,但是当保存笔记本时,小部件不再存在.有没有办法用笔记本保存它们?
只是想知道为什么重复行为与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) 如何在hive中实现拆分由分号分隔的字符串字段?
select split(f1,";")[0] from table;
Run Code Online (Sandbox Code Playgroud) r ×8
data.table ×4
ggplot2 ×2
comparison ×1
duplicates ×1
grouping ×1
hive ×1
ipywidgets ×1
missing-data ×1
na ×1
vector ×1