我想将列名传递给setkey()除了一两个.我可以轻松地像下面这样做:
setkey(df, column1, column2, column3, column6, ..., columnN, physical = TRUE)
Run Code Online (Sandbox Code Playgroud)
(请注意column4并column5跳过).
但是它要求我列出除某些特定列之外的所有列名.我可以获取列的列表colnames(df),但我不知道如何(1)将其传递给setkey()(2)从列表中排除某些列?
您可以尝试使用setkeyv哪个可以接受列名称的字符向量,然后使用简单的索引.
例如,按位置忽略列
setkeyv(df, names(df)[-(4:5)])
Run Code Online (Sandbox Code Playgroud)
或者通过列名称的向量忽略列(结合setdiff)
ignore <- c("column4", "column5")
setkeyv(df, setdiff(names(df), ignore))
Run Code Online (Sandbox Code Playgroud)