r - R: data.table: := 在相反的情况下
问题描述
假设我有两个要左连接的数据集,
i <- data.table(id=1:3, k=7:9, l=7:9, m=7:9, n=7:9)
和
x <- data.table(id=c(1,2), x=c(10,20))
要左连接,保留所有行i
,我执行
x[i, .(id=i.id, k=i.k, l=i.l, m=i.m, n=i.n, x=x.x), on=.(id=id)]
但我想知道是否有一种更简单、更有效的方法可以让您不必拼出i
.
例如,在相反的情况下(即,当我想保留所有列时i
),我可以使用:=
运算符,如x[i, k:=i.k, on=.(id=id)]
. 我的理解是,这也使事情变得更有效率,因为不需要复制列。这种情况有可比性吗?
解决方案
您可以在加入后使用数据表setcolorder()
..
setcolorder( x[i, on = "id"], c( names(i), "x" ) )
# id k l m n x
# 1: 1 7 7 7 7 10
# 2: 2 8 8 8 8 20
# 3: 3 9 9 9 9 NA
推荐阅读
- javascript - 在 2 个 svg rects 之间绘制动态线
- django - Django - 在管理员工作中显示历史记录,但仅在管理员中发生操作时显示
- javascript - 为什么我的函数不会绘制多个砖块?
- r - 如何计算R中多年的每个月的中位数?
- arduino - Arduino 获取请求导致 FastAPI 无效 HTTP 请求
- loops - 基本while循环的断言错误/异常
- ruby-on-rails - Rails - 包含一个模块而不使用包含这个词
- mysql - 使用 node.js MySQL 连接 ECONNREFUSED 仍然出现错误
- javascript - 在Javascript中将TZ日期格式转换为“dd/mm/yy hh:mm:ss”
- python - 如何将高度和宽度传递给 imagekit 模板标签?