【问题标题】:Understand the meaning of[.... with=F][[1]]理解 [.... with=F][[1]] 的含义
【发布时间】:2019-10-30 03:57:36
【问题描述】:

我正在根据R中data.table的问题和解决方案进行练习。问题是:获取数据表中缺失值的行和列位置。解决方案代码使用“[.....with=F][[1]]。我不理解该代码的这一部分,并希望专家意见能够明确我的概念。

for(i in 1:NROW(DT)){
  for(j in 1:NCOL(DT)){
    curr_value <- DT[i, j,with=F][[1]]

我可以理解前两行,但不理解,with=F 然后 [[1]] with=F 的含义是什么,为什么之后使用 [[1]]。为什么有双括号和1?

【问题讨论】:

    标签: r data.table


    【解决方案1】:

    一般在data.tablewith = FALSE 允许你选择以变量命名的列。

    考虑以下最小示例,

    library(data.table)
    dt <- data.table(mtcars)
    

    让我们从dt中选择以下列

    cols <- c(1, 7)
    

    下面的命令会报错

    dt[, cols]
    

    您可以改为使用with = F

    dt[, cols, with = F]
    

    来自?data.table

    当 with=TRUE(默认)时,j 在 data.table 的框架内进行评估; 即,它将列名视为变量。

    更短的替代方法是使用

    dt[, ..cols]
    

    另见Why does “..” work to pass column names in a character vector variable?

    【讨论】:

    • 感谢 Maurits Evers 对 With=F 部分的详细解释。这真的很有帮助。您还用双点详细说明了它......非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2019-08-22
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2011-09-23
    相关资源
    最近更新 更多