1e7)[ ,-6ren">
gpt4 book ai didi

r - 使用 "[]"对 tibble 进行子集化会产生 "object not found"错误

转载 作者:行者123 更新时间:2023-12-03 15:46:54 25 4
gpt4 key购买 nike

关于 dplyr 的文章 here表示“[]”(方括号)可用于对过滤后的 Tibbles 进行子集化,如下所示:

filter(mammals, adult_body_mass_g > 1e7)[ , 3]

但我收到“未找到对象”错误。这是在更知名的数据集“iris”上复制错误

library(dplyr)
iris %>% filter(Sepal.Length>6) [,c(1:3)]

Error in filter_(.data, .dots = lazyeval::lazy_dots(...)) : object 'Sepal.Length' not found

我还想提一下,我故意不喜欢使用 select() 在 dplyr 中使用 native 子集,因为我需要矢量输出,而不是单列上的数据帧。不幸的是,dplyr 总是强制输出数据帧(有充分的理由)。

最佳答案

你需要一个额外的管道:

iris %>% filter(Sepal.Length>6) %>% .[,1:3]

抱歉,忘记了括号前的.

注意:如果您坚持 tidyverse 语法并使用 select 作为最后一个操作,您的代码可能会更具可读性。

iris %>%
filter(Sepal.Length > 6) %>%
select(1:3)

关于r - 使用 "[]"对 tibble 进行子集化会产生 "object not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44373284/

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