我有这个日期向量:
dput(date)
c("1981035", "1981036", "1981037", "1981038", "1981039", "1981040",
"1981041", "1981042", "1981043", "1981044", "1981045", "1981046",
"1981047", "1981048", "1981049", "1981050", "1981051", "1981052",
"1982001", "1982002", "1982003", "1982004", "1982005", "1982006",
"1982007", "1982008", "1982009", "1982010", "1982011", "1982012",
"1982013", "1982014", "1982015", "1982016", "1982017", "1982018",
"1982019", "1982020", "1982021", "1982022", "1982023", "1982024",
"1982025", "1982026", "1982027", "1982028", "1982029", "1982030",
"1982031", "1982032", "1982033", "1982034", "1982035", "1982036",
"1982037")
以年周为单位给出[第1周涵盖一年中的第1至7天]。我想将其转换为年月日格式,并尝试了以下操作,但没有用:
as.Date(date, "%Y%U")
答案 0 :(得分:3)
您必须为其分配一周中的一天。否则,它不能转换为特定日期,因为它是指日期范围。通过%w
选择第0天,即星期日,您可以使用下面的代码。
as.Date(paste0(da, '0'), format = '%Y0%U%w')
注意:假定第五位不包含任何信息。这对我来说似乎很奇怪,但是根据OP的说法是正确的。
编辑:@Kath指出将数据视为%Y%w%U格式可能更有意义,因此您可以使用下面的简单代码来达到相同的结果
as.Date(da, format = '%Y%w%U')