Mwa*_*avu 0 r dplyr data.table
假设我有这个DT和ID下面的:
library(data.table)
DT <- data.table(
ID = c("b","b","b","a","a","c"),
a = 1:6,
b = 7:12,
c = 13:18
)
ID <- "b"
Run Code Online (Sandbox Code Playgroud)
DT
#> ID a b c
#> 1: b 1 7 13
#> 2: b 2 8 14
#> 3: b 3 9 15
#> 4: a 4 10 16
#> 5: a 5 11 17
#> 6: c 6 12 18
Run Code Online (Sandbox Code Playgroud)
是否有{data.table}相当于 的{dplyr}:
DT |> dplyr::filter(ID == !!ID)
#> ID a b c
#> 1: b 1 7 13
#> 2: b 2 8 14
#> 3: b 3 9 15
Run Code Online (Sandbox Code Playgroud)
假设我不更改变量的名称。
是的,只需将变量包装在as.name():
DT[ID == as.name(ID)]
# ID a b c
# 1: b 1 7 13
# 2: b 2 8 14
# 3: b 3 9 15
Run Code Online (Sandbox Code Playgroud)