Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改“到日期R”中的整数_R_Integer - Fatal编程技术网

如何更改“到日期R”中的整数

如何更改“到日期R”中的整数,r,integer,R,Integer,嗨,我有个关于R的问题 例如,我们可以将字符转换为日期 v <- c(2008101, 20081202, 20081103) date <- as.Date(as.character(v), format("%Y%m%d"));date v像这样简单的事情怎么样: ##Give each entry a date v = paste0(v, "01") ##Convert as before date = as.Date(as.character(v), format("%Y%m

嗨,我有个关于R的问题

例如,我们可以将字符转换为日期

v <- c(2008101, 20081202, 20081103)
date <- as.Date(as.character(v), format("%Y%m%d"));date

v像这样简单的事情怎么样:

##Give each entry a date
v = paste0(v, "01")
##Convert as before
date = as.Date(as.character(v), format("%Y%m%d"));
您甚至可以编写一个小函数来自动执行此操作:

to_date = function(v) {
  v = as.character(v)

  missing_day = nchar(v) < 7
  v[missing_day] = paste0(v[missing_day], "01")
  as.Date(v, format("%Y%m%d"))
}

##Last value is missing the date
v = c(2008101, 20081202, 20081103, 200811)
to_date(v)
to_date=函数(v){
v=作为字符(v)
失踪日=nchar(v)<7
v[失踪日]=粘贴0(v[失踪日],“01”)
截止日期(v,格式(“%Y%m%d”))
}
##最后一个值缺少日期
v=c(20081012008120220081103200811)
截止日期(五)

还有另一种选择:

foo <- function(x){
  x <- as.Date(as.character(x), format("%Y%m%d"))
  newDates <- lapply(strsplit(as.character(x), "-"), "[", -2)
  sapply(newDates, function(x) paste(x[1],x[2],  sep="-"))
}

> foo(v)
[1] "2008-01" "2008-02" "2008-03"

foo我认为理想的结果是
2008-01
,但您的解决方案给了我
2008-01-01
。想法?@RomanLuštrik我想这取决于OP使用日期的内容和方式。当我处于这种情况下,我通常不关心这一天(例如,绘制100年图)。