当前位置: 首页 > 知识库问答 >
问题:

在R中子集符号对象

解高昂
2023-03-14

我想在过滤的时候总结一些数据。

library(datasets)
library(magrittr)
library(dplyr)
#> 
#> Attachement du package : 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
data(cars)
cars %<>% as_tibble()

test <- function (.data = NULL, x = NULL, y = NULL) {
  xs <- rlang::sym(x)
  ys <- rlang::sym(y)
  .data %>%
    summarise(
      sym_work = mean(!!xs),
      work = mean(dist[speed == 10]),
      not_work = mean(!!xs[!!ys == 10])
    )
}
test(.data = cars, x = "dist", y = "speed")
#> Error in xs[!!ys == 10]: objet de type 'symbol' non indiçable

由reprex包(v0.3.0)在2020-11-10上创建

共有1个答案

广瑞
2023-03-14

由于运算符优先级的原因,目前您的代码被解释为!!(xs[!!ys==10]),这是没有意义的。您需要(!!xs)[!!ys==10]:

library(datasets)
library(magrittr)
library(dplyr)
#> Warning: package 'dplyr' was built under R version 3.6.3
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

data(cars)
cars %<>% as_tibble()

test <- function (.data = NULL, x = NULL, y = NULL) {
  xs <- rlang::sym(x)
  ys <- rlang::sym(y)
  .data %>%
    summarise(
      sym_work = mean(!!xs),
      work = mean(dist[speed == 10]),
      not_work = mean((!!xs)[!!ys == 10])
    )
}

test(.data = cars, x = "dist", y = "speed")
#> # A tibble: 1 x 3
#>   sym_work  work not_work
#>      <dbl> <dbl>    <dbl>
#> 1     43.0    26       26

由reprex包(v0.3.0)在2020-11-10上创建

 类似资料:
  • 我刚刚完成了我的应用程序,当我试图将它保存为一个APK时,这个错误出现了,代码中的所有'R都变成了红色。这已经不是第一次发生了。我怎么修好它? > 这是代码中有错误的所有行,所有R都是红色的。: “无法解析符号'dise'”等。 3.我只是在R上做了,然后点击创建一个类“R”...错误消失了,这是正确的还是可能导致另一个错误?

  • 嗨,我的数据结构已附加。 我只需要访问下每个元素下的。我可以单独手动执行,这给了我,但像这样的元素有100个。 我遵循这个问题的解决方案:列表子集的子集 使用此

  • 关于符号集 符号集是一组使用“符号喷枪”工具创建的符号实例。您可以对一个符号使用“符号喷枪”工具,然后对另一个符号再次使用,来创建符号实例混合集。使用符号工具创建的图稿 当您处理符号组时,请记住符号工具仅影响“符号”面板中选定的符号。例如,如果您创建代表长满花草的草地的混合符号实例组,则可以通过在“符号”面板中选择草符号,然后使用符号旋转器工具来更改草的方向。若要同时更改草和花的大小,请在“符号”

  • 我收到这个编译器错误:无法解析符号“R”。我知道这个问题可能看起来很熟悉,但与此问题相关的许多其他问题说,尽管有错误,但代码可以编译,而我的代码不能,或者可以通过清理项目和/或重新启动Android Studio(我使用0.8.6)来解决问题,而在我的情况下,这不起作用。导入类解决了编译器错误,但在我启动活动时导致我的应用程序崩溃。包含错误的. java代码是: 我还了解到,这可能是由布局错误引起

  • 本文向大家介绍R按列值子集行,包括了R按列值子集行的使用技巧和注意事项,需要的朋友参考一下 示例 内置的功能子集可以rows与columns该满足的条件。 为了找到rows有price_Elasticity > 0: df[df$price_Elasticity > 0, ] 基于price_Elasticity > 0和的子集total_Margin > 0: df[df$price_Elast