gpt4 book ai didi

r - 过滤器在 dplyr 中无法正常工作(找不到对象)

转载 作者:行者123 更新时间:2023-12-05 04:09:16 25 4
gpt4 key购买 nike

我最近开始使用 dplyr 库并遇到了一个非常奇怪的问题,正如我在以下示例中解释的那样:

数据:

df <- data.frame(Number = c(1,2), Letter = c('a','b'))

df = tbl_df(tst)

问题:

像这样运行选择和过滤器:

df %>% select(Number) %>% filter(Letter == 'a')

给我错误:

"Error in filter_impl(.data, quo) :    
Evaluation error: object 'Letter' not found."

虽然我可以更改选择和筛选的顺序并且它工作正常:

df  %>% filter(Letter == 'a') %>% select(Number)

结果:

# A tibble: 1 x 1

Number

<dbl>

1 1

我找不到任何地方来解释它是否是一般规则,是否有使用 dplyr 键功能的一些顺序,或者还有其他问题。

最佳答案

在这一行

df %>% select(Number) %>% filter(Letter == 'a')

第一次调用 select 后,您会得到一个仅包含一列 (Number) 的数据表。这正是 filter 提示的原因 - 你把 Letter 列扔掉了。

在第二个调用中,您首先过滤 Letter然后丢弃该列。

因此,filter 正在正常工作。除了“以合理的顺序做事”或“垃圾进垃圾出”之外,没有任何“一般规则”

关于r - 过滤器在 dplyr 中无法正常工作(找不到对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46289171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com