【问题标题】:Filtering of data table yields unexpected results过滤数据表会产生意想不到的结果
【发布时间】:2021-12-28 14:36:54
【问题描述】:

我正在尝试过滤数据表,看似两种等效方法会产生不同的结果。不幸的是,我无法共享数据,也无法通过一个简单的示例来复制我的问题。下面我提供每种方法的代码。在第一种方法中,我们从向量中选择一个元素来过滤数据表。结果是一个非空数据表。但是,当我将该向量的第一个元素存储在单独的过滤器中并尝试使用该变量进行过滤时,结果是一个空表。可能是什么原因?提供的代码正是我运行的代码。

# Method 1

dataSet[FieldLabel == stringVector[1]] # stringVector[1] is something like "XDE 01.1 - YYYY QX BBBB 
Probability (incl. XXX) - changed.xlsm"

# Method 2

template <- stringVector[1]
dataSet[FieldLabel == template]

【问题讨论】:

  • stringVector 是字符向量吗? str(stringVector) 返回什么?
  • 你在dataSet中有一个名为template的列吗?
  • 如果是,请考虑dataSet[FieldLabel == get("template", parent.frame())]setkey(dataSet, FieldLabel) ; dataSet[template]
  • @Aurele,没有'templates' %in% names(dataSet) 产生FALSE
  • 'template' %in% names(dataSet) 呢?

标签: r data.table


【解决方案1】:

Aurele,发现变量templatedataSet 中的列的问题。我只是重命名了变量template 来避免这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    相关资源
    最近更新 更多