在data.table
中使用mget
函数是不推荐的,因为它会导致代码的可读性和可维护性降低。而且,使用mget
函数需要将变量作为字符向量传递,这可能会导致一些潜在的错误。
下面是一种解决方案,可以避免在data.table
中使用mget
函数:
假设我们有一个存储在变量cols
中的字符向量,我们想要在data.table
中选择这些列。而不是使用mget
函数,我们可以使用with = FALSE
选项,将字符向量作为列名传递给data.table
的j
参数。
library(data.table)
# 创建一个示例的 data.table
dt <- data.table(
col1 = 1:5,
col2 = letters[1:5],
col3 = LETTERS[1:5]
)
# 需要选择的列名
cols <- c("col1", "col2")
# 使用 with = FALSE 选项传递字符向量给 j 参数
dt[, cols, with = FALSE]
这将返回一个包含col1
和col2
列的data.table
。
使用with = FALSE
选项可以避免在data.table
中使用mget
函数,提高代码的可读性和可维护性。