[英]How can I apply a function to a list of dataframes in R?
我正在尝试绑定许多数据框。 它们都具有相同的列数和相同的列名。 但是,bind_rows 不起作用,因为某些数据帧将特定列存储为日期,而另一些则存储为字符。 如何在所有数据框中应用将日期转换为字符或反之亦然的 function? 如果我转换所有数据框中的所有日期列,那就更好了。 这是我正在尝试做的一些虚拟代码:
library(tidyverse)
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
startdate.2<-c('2010-11-1','2008-3-25','2007-3-14')
df1<-data.frame(employee,salary, startdate)
df2<-data.frame(employee,salary, startdate.2) %>% rename(startdate=startdate.2)
df3<-bind_rows(df1,df2)
错误:无法组合..1$startdate
和..2$startdate
。
谢谢你的帮助!
这是使用purrr
将所有日期列转换为字符列的方法
list(df1, df2) %>%
map(~mutate(.x, across(where(lubridate::is.Date), as.character))) %>%
bind_rows()
或者,如果您想将名称中带有“日期”的所有列转换为日期值,您可以这样做
list(df1, df2) %>%
map(~mutate(.x, across(contains("date"), as.Date))) %>%
bind_rows()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.