为什么tidyverse :: map不能在一个小标题中同时使用两个列表?

Alvaro Morales占位符图像

我想指望有多少天列dias_trabajodias_evaluar

library(tidyverse)
library(lubridate)

这是最低要求:

tibble(
  dias_trabajo = list(seq(ymd("2021-01-01"), ymd("2021-01-22"), by = "day"), seq(ymd("2021-01-04"), ymd("2021-01-22"), by = "day")),
  dias_evaluar = list(seq(ymd("2021-01-01"), ymd("2021-01-07"), by = "day"))
) %>% 
  mutate(
    trabajo = map(dias_trabajo, function(x) x %in% dias_evaluar) %>% map_int(sum)
  )

上面的代码在处给出零trabajo

# A tibble: 2 x 3
  dias_trabajo dias_evaluar trabajo
  <list>       <list>         <int>
1 <date [22]>  <date [7]>         0
2 <date [19]>  <date [7]>         0

我希望该列为trabajo:第一行:7,第二行:4。

我只用一行尝试过,它有效:

seq(ymd("2021-01-01"), ymd("2021-01-22"), by = "day") %in% seq(ymd("2021-01-01"), ymd("2021-01-07"), by = "day") %>% sum()

给。这是第一行的预期结果。

[1] 7
误用

由于您有两个列表作为输入dias_trabajo,因此dias_evaluar需要使用map2

library(tidyverse)
library(lubridate)

  
tb %>% 
  mutate(
    trabajo = map2_dbl(.x = dias_trabajo, .y = dias_evaluar, ~sum(.x %in% .y))
    )

# A tibble: 2 x 3
  dias_trabajo dias_evaluar trabajo
  <list>       <list>         <int>
1 <date [22]>  <date [7]>         7
2 <date [19]>  <date [7]>         4

数据:

tb <- tibble(
        dias_trabajo = list(seq(ymd("2021-01-01"), ymd("2021-01-22"), by = "day"), seq(ymd("2021-01-04"), ymd("2021-01-22"), by = "day")),
        dias_evaluar = list(seq(ymd("2021-01-01"), ymd("2021-01-07"), by = "day"))
      ) 

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在一个模板中显示两个列表视图?

为什么我不能在一台计算机上同时使用两个或多个键盘/鼠标?

为什么我不能在两个渲染函数中传递一个函数?

为什么不能在一个函数中混合两个原语?

为什么两个if语句不能在一个函数中起作用?

为什么不能在一行中交换列表中的两个项目?

为什么用户不能在同一表上同时运行两个或多个选择查询?

为什么不能在ruby中对一个实例两次使用相同的方法?

为什么不能在两个dom元素中追加同一个孩子?

为什么这两个路由器不能在同一个网络中工作?

为什么不能在同一个项目中同时使用 require('foo') 和 ECMAScript 导出?

斯卡拉(Scala):为什么foldLeft不能同时容纳两个列表?

为什么我不能在 R 中使用 left_join 合并两个文件?

为什么我不能在一个 post 请求中使用 res.json() 两次?

为什么不能在一个事务中创建和删除表两次?

为什么不能为一个asio io_service使用两个计时器?

当将应用程序部署为JAR时,为什么“ ..”(两个句点)不能在一个目录中工作?

为什么在Java的一个文件中不能定义两个公共类?

为什么我不能两个接一个地等待?

为什么两个接口不能属于同一个子网?

为什么我不能将两个变量附加为一个元组

为什么我不能使用两个“if 语句”而不是一个 elif,如果两者中只有一个会执行?

为什么不能在for循环中将两个列表解压缩为格式字符串?

为什么我不能在一个HTML页面中使用许多播放/暂停按钮?

为什么 Python .append() 附加两个值,而不是列表中的一个?

python pandas:为什么我不能在同一个 read_csv 语句中同时使用 index_col 和 usecols ?提升值错误

为什么不能在另一个函数中定义一个函数?

为什么CSS左浮动不能在同一行上放置两个div?

为什么这两个跨度不能在同一位置垂直对齐?