无法将`spec_tbl_df / tbl_df / tbl / data.frame`对象转换为函数

洛克

这个问题可能与magrittr有关,但我不确定。如果我将数据(%>%)传递到下一个函数,据我所知它将转到第一个参数。我有此示例数据集(df),并希望提取col1至col3列中包含值101至104的所有行。

# A tibble: 5 x 4
     ID  col1  col2  col3
  <dbl> <dbl> <dbl> <dbl>
     1   101   102   201
     2   201   202   203
     3   104    NA   301
     4   101    NA    NA
     5   201   301   302

我可以做这个

library(tidyverse)

df %>% filter(pmap_lgl(select(., starts_with("col")), ~any(c(...) %in% c(101:104))))

但是,当我只想获取布尔向量时,会收到警告

df %>% pmap_lgl(select(., starts_with("col")), ~any(c(...) %in% c(101:104)))
Error: Can't convert a `spec_tbl_df/tbl_df/tbl/data.frame` object to function

我发现我可以使用它

df %>% {pmap_lgl(select(., starts_with("col")), ~any(c(...) %in% c(101:104)))}

据我了解,df通常会传递给pmap的第一个参数,但是像这样,它会到达点所在的位置。但是,为什么在第一种情况下不需要这样做。

数据:

df <- structure(list(ID = c(1, 2, 3, 4, 5), col1 = c(101, 201, 104, 
101, 201), col2 = c(102, 202, NA, NA, 301), col3 = c(201, 203, 
301, NA, 302)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"
), row.names = c(NA, -5L), spec = structure(list(cols = list(
    ID = structure(list(), class = c("collector_double", "collector"
    )), col1 = structure(list(), class = c("collector_double", 
    "collector")), col2 = structure(list(), class = c("collector_double", 
    "collector")), col3 = structure(list(), class = c("collector_double", 
    "collector"))), default = structure(list(), class = c("collector_guess", 
"collector")), skip = 1), class = "col_spec"))
烟熏振动器

在第一种情况下,df是的预期第一个参数filterdf以后可以使用访问.

在第二种情况下,df不是的预期第一个参数pmap_lgl

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将tbl_df转换为ts

如何转换从Excel中从““ tbl_df”“ tbl”“ data.frame”导入的数据集。到“ xts”?

如何使用dplyr将tbl_mysql类的对象转换为tbl_df?

奇怪:sapply无法在dplyr :: tbl_df()本地data.frame上工作

将嵌套的 tbl_df 转换为 tibble 或数据框

将 tbl_df 转换为 ts 列表(时间序列)

dplyr显示tbl_df中小data.frame的所有行和列

为data.frame和tbl_df设置行和列

使用循环时tbl_df和data.frame的区别

as.tibble(),as_data_frame()和tbl_df()有什么区别?

错误(函数(类,fdef,mtable):无法为签名“ spec_tbl_df”找到函数select的继承方法

在R中使用ifelse()将变量分配给tbl_df / data.frame对象会导致R的内存不足

在 R 中将 tbl_df 结果转换和导出到 xlsx 时出错

将我自己的函数应用于dplyr tbl_df

在tbl_df列表上进行映射和变异

提取单个dplyr tbl_df行作为矢量

显示/打印小标题的所有行(tbl_df)

在dplyr tbl_df中删除列的最佳实践

使用变量名称过滤dplyr的tbl_df

RStudio中未使用的参数.tbl_df中的错误

spec_tbl_df 在与普通 tibble 相同的操作上慢 10 倍以上

打印时在dplyr tbl_df中四舍五入数值

为什么子集会在dlpyr中用tbl_df更改?

各种功能对tbl_df(dplyr使用的数据帧类型)的反应很差

如何在闪亮的小部件中将tbl_df列的值作为选择传递?

无法访问要在 ggplot2 上使用的 tbl df 对象中的数据

转置dplyr :: tbl对象

将R data.frame / tbl导出到Google BigQuery表

将文件从sql转换为tbl时如何删除引号