我设置了这样的函数:
numdate <- function(x) {if(!all(is.na(as.Date(as.character(x),
format="%Y%m%d")))) {
as.Date(as.character(x),format="%Y%m%d")}
else return (x)}
目的是识别包含&#34; 20161213&#34;等数据的列,并将其更改为日期&#34; 2016-12-13&#34;。
ValueDate BookDate TranAmt
1 20161219 20161219 189887.5
2 20161216 20161216 20151212
3 20161216 20161216 19229923
我想要的是
ValueDate BookDate TranAmt
1 2016-12-19 2016-12-19 189887.5
2 2016-12-16 2016-12-16 20151212
3 2016-12-16 2016-12-16 192299.23
所以R只更改前两个日期列,并保留第3列(我不知道哪个列是日期,哪个列不是)
d3 <- lapply(d1, numdate)
将所有值更改为日期,这是我不喜欢的