如何避免在数据框日期格式检查中嵌套使用lapply?
简化日期格式检查的R代码写法
给你两种更简洁的实现方式,不用嵌套多次lapply:
方法一:用purrr的map整合步骤
借助purrr包的map函数,把「过滤NA、检查格式、判断全部符合」这三个步骤合并到一个匿名函数里,代码更紧凑:
library(purrr) library(dplyr) df %>% select(date_vars) %>% map(~ .x[!is.na(.x)] %>% check_date_format() %>% all())
方法二:用dplyr的across直接生成结果
如果想要直接得到一个数据框格式的检查结果(每列对应原日期变量的检查状态),可以用across结合summarize:
library(dplyr) df %>% select(date_vars) %>% summarize(across(everything(), ~ all(check_date_format(.x[!is.na(.x)]))))
这两种写法都保留了你原代码的核心逻辑,同时避免了多层lapply嵌套,可读性和简洁性都更好。
内容的提问来源于stack exchange,提问作者Elias Wilson
相关产品推荐
相关产品推荐

