gpt4 book ai didi

r - 有什么方法可以将.SD+.SDcols 中的变量名与data.table 中的非.SD 变量名一起保存吗?

转载 作者:行者123 更新时间:2023-12-05 03:34:17 26 4
gpt4 key购买 nike

给定一个data.table

library(data.table)
DT = data.table(x=rep(c("b","a","c"),each=3), v=c(1,1,1,2,2,1,1,2,2), y=c(1,3,6), a=1:9, b=9:1)
DT
x v y a b
1: b 1 1 1 9
2: b 1 3 2 8
3: b 1 6 3 7
4: a 2 1 4 6
5: a 2 3 5 5
6: a 1 6 6 4
7: c 1 1 7 3
8: c 2 3 8 2
9: c 2 6 9 1

如果有的话

DT[, .(a, .SD), .SDcols=x:y]
a .SD.x .SD.v .SD.y
1: 1 b 1 1
2: 2 b 1 3
3: 3 b 1 6
4: 4 a 2 1
5: 5 a 2 3
6: 6 a 1 6
7: 7 c 1 1
8: 8 c 2 3
9: 9 c 2 6

.SDcols 中的变量以 .SD 为前缀。另一方面,如果有人尝试,如 https://stackoverflow.com/a/62282856/997979 ,

DT[, c(.(a), .SD), .SDcols=x:y]
V1 x v y
1: 1 b 1 1
2: 2 b 1 3
3: 3 b 1 6
4: 4 a 2 1
5: 5 a 2 3
6: 6 a 1 6
7: 7 c 1 1
8: 8 c 2 3
9: 9 c 2 6

其他变量名 (a) 丢失。 (由于这个原因,我重新提出了我最初标记为与上面链接重复的问题)。

有什么方法可以同时保留 .SD 变量和非 .SD 变量的名称吗?

目标是同时能够使用 .() 选择不带引号的变量,并能够通过 .SDcols = patterns("...") 选择变量>

提前致谢!

最佳答案

不太确定为什么..但它有效;-)

DT[, .(a, (.SD)), .SDcols=x:y]
# a x v y
# 1: 1 b 1 1
# 2: 2 b 1 3
# 3: 3 b 1 6
# 4: 4 a 2 1
# 5: 5 a 2 3
# 6: 6 a 1 6
# 7: 7 c 1 1
# 8: 8 c 2 3
# 9: 9 c 2 6

关于r - 有什么方法可以将.SD+.SDcols 中的变量名与data.table 中的非.SD 变量名一起保存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70199501/

26 4 0