r - 在嵌套列表中的元素位置上使用 purrr?
问题描述
情况:我在下图中有一个嵌套列表。我想使用 purrr 遍历每个嵌套列表的第二个元素并应用日期转换函数。
问题: 我可以轻松地编写一个 for 循环来迭代它,但我想将它与 purrr 一起使用。我的嵌套列表尝试没有成功。正常列表很好,按位置嵌套,不好。
来自 Maurits Evers 的可重现示例代码(谢谢!)
lst <- list(
list("one", "12345", "2019-01-01"),
list("two", "67890", "2019-01-02"))
任何帮助表示赞赏!
解决方案
请参阅上面的评论以了解如何提供可重现的示例,包括示例数据。
由于您不提供示例数据,因此让我们创建一些类似于屏幕截图中显示的最小模拟数据。
lst <- list(
list("one", "12345", "2019-01-01"),
list("two", "67890", "2019-01-02"))
list
要转换每个元素的第三个元素,as.Date
我们可以这样做
lst <- map(lst, ~{.x[[3]] <- as.Date(.x[[3]]); .x})
我们可以确认每个list
元素的第三个元素是类型的对象Date
str(lst)
#List of 2
# $ :List of 3
# ..$ : chr "one"
# ..$ : chr "12345"
# ..$ : Date[1:1], format: "2019-01-01"
# $ :List of 3
# ..$ : chr "two"
# ..$ : chr "67890"
# ..$ : Date[1:1], format: "2019-01-02"
更新
一个更purrr
/ tidyverse
-canonical 的方法是使用modify_at
(感谢@H1)
lst <- map(lst, ~modify_at(.x, 3, as.Date))
结果和以前一样。
推荐阅读
- php - Php 关联数组函数,查找由 id 值重复和在数组中生成的非重复值
- php - 在 PHP 和 SQL 中从数据库中删除记录
- java - 如何存储布尔返回false/true的次数
- dynamics-crm - Dynamics365 - 在高级查找结果页面上检索 Query/FetchXML
- swift - Swift 3 在文本颜色中使用十六进制
- windows - 通过脚本修改 windows 10 焦点辅助选项
- ios - 我应该在我的 Ionic 应用程序中允许导航到 about:blank 吗?
- c# - Selenium 不显示单元格的文本
- c# - 我的总值和计算器不完全一样
- fortran - 如何在 Fortran 中使用 dlmopen?