r - mapply 将日期更改为双倍

标签 r mapply

如何防止 mapply 将日期更改为 double ?

这就是我的意思:

datedf<-data.frame(y=as.character(rep(2010,12)),m=as.character(seq(1,12,1)),stringsAsFactors=FALSE)
head(datedf)

yyyymm_to_date<-function(y,m) {
  return(as.Date(paste0(y,ifelse(nchar(m)==1,paste0("0",m),m),"01"),"%Y%m%d"))
}    

yyyymm_to_date("2000","4") # prints "2010-04-01"

datedf$d<-mapply(FUN=yyyymm_to_date,y=datedf$y,m=datedf$m,SIMPLIFY=FALSE) # simplify does not help
head(datedf) # prints double numbers ?? --> want dates

谢谢&亲切的问候

最佳答案

您只需要一个 do.call (因为 maply 返回一个 list),您的代码完全没问题:

datedf$d <- do.call('c',mapply(FUN=yyyymm_to_date,y=datedf$y,m=datedf$m,SIMPLIFY=FALSE))
head(datedf)
#     y m          d
#1 2010 1 2010-01-01
#2 2010 2 2010-02-01
#3 2010 3 2010-03-01
#4 2010 4 2010-04-01
#5 2010 5 2010-05-01
#6 2010 6 2010-06-01

关于r - mapply 将日期更改为双倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410120/

相关文章:

r - quantmod::chart_Series 和 mapply 给出图表参数错误

r - 使用 mapply 在数据帧中进行间接寻址

r - R 中带有rep 和 dplyr 管道的 mapply 的奇怪行为

R采样绕过randomForest 32因子限制

r - 结合过滤器、跨和 starts_with 以跨 R 中的列进行字符串搜索

R data.table 在所有行上应用具有多列输入的函数并获得合理的输出

r - 将 match.call() 与 mapply 一起使用

r - 使用R解析Surveymonkey csv文件

r - 具有多个 ARFF 文件的 WEKA 预测

r - 在 nlme 和 lme4 中拟合相同的模型