什么是生成错误'不能子集`.data`外部的数据掩码上下文'与'dplyr'?

hsvhsicv  于 2023-10-13  发布在  其他
关注(0)|答案(2)|浏览(185)

我有一个巨大的闪亮的应用程序,它使用一个巨大的包。我不是其中任何一个的作者,我有点迷路了。函数(fermentationPlot)抛出错误:* 无法在数据掩码上下文之外设置.data子集 *:

Warning: Error in fermentationPlot: Can't subset `.data` outside of a data mask context.
  185: <Anonymous>
  173: dplyr::arrange
  172: dplyr::mutate
  171: as.data.frame

此错误的原因可能是什么?这是什么意思下面是生成它的代码块。我在谷歌上搜索了这个错误消息,我发现它可以通过降级'dplyr'来修复。我试了1.0.10、1.0.5和1.0.0,总是出现错误。

plotInfo <- dplyr::left_join(
    x = dplyr::select(
      plotDefaults, -c(.data$templateName, .data$minValue, .data$maxValue)
    ), 
    y = plotSettings, 
    by = .data$dataName
  ) %>%
    dplyr::arrange(!is.na(.data$order), -.data$order) %>%
    dplyr::mutate(
      color = replace(.data$color, .data$color == "Blue", "Dark blue"),
      minValue = as.numeric(.data$minValue),
      maxValue = as.numeric(.data$maxValue)
    ) %>%
    as.data.frame()
yuvru6vn

yuvru6vn1#

left_joinby参数必须是列名的 * 字符向量 *。也许作者是想

by = "dataName"

而不是

by = .data$dataName
ssgvzors

ssgvzors2#

我的情况有点小,但导致问题的变量是包本身中的数据变量,因此可以像这样引用

package_name::problematic_variable

为我解决了。

相关问题