在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函数,提高代码的可读性和可维护性。