我使用从excel导入的数据集:
OBX <- read_excel("C:/Users/neri_/Desktop/OBX Weekly Return.xlsx")
Date OBX
1 2010-12-28 0.0071366
2 2010-12-29 4.97265e-05
3 2010-12-30 -0.00452489
4 2011-01-03 0.00896603
5 2011-01-04 -0.0101488
6 2011-01-05 0.00520143
7 2011-01-06 -0.000422917
8 2011-01-07 -0.00301145
9 2011-01-10 -0.00341996
10 2011-01-11 0.013326
11 2011-01-12 0.00882484
我正在努力解决此错误消息,
“as.POSIXlt.character(x,tz,...)出错:字符串不是标准的明确格式”, 我正在尝试运行代码时遇到的问题:
weeklydata<-to.weekly(OBX).
我想将每日数据转换为每周数据,如何修改日期格式,以便运行to.weekly命令?
感谢您的帮助!
答案 0 :(得分:0)
使用as.Date
函数转换:
mydate<-"2010-12-28 0.0071366"
mydate<-as.Date(mydate,"%Y-%m-%d")
format(mydate,"%Y-%U")
答案 1 :(得分:0)
您可以使用date2ISOweek()
包中的ISOweek
。使用stringr
进行模式更新,使用dplyr
生成周结果;加载包后代码就像这样。
library(ISOweek)
library(stringr)
library(dplyr)
# mocking up some data
OBX <- data.frame(
Date = c("2010-12-28", "2010-12-29", "2010-12-30", "2010-12-31", "2011-01-03", "2011-01-04"),
OBX = 101:106
)
# transform form month- to week-based and trim some
OBX$dateWeek <- date2ISOweek(OBX$Date)
# get rid of the preceeding "W", next drop day-of-week
OBX$dateWeek <- stringr::str_replace(OBX$dateWeek, "-W", "-")
OBX$dateWeek <- stringr::str_replace(OBX$dateWeek, "-.$", "")
# sum per week and print
OBX %>%
group_by(dateWeek) %>%
summarise(weekSum = sum(OBX))
# the results of the mocked data
# A tibble: 2 × 2
dateWeek weekSum
<chr> <int>
1 2010-52 410
2 2011-01 211
请告诉我这是否符合您的需求。
答案 2 :(得分:0)
我刚开始使用R。我用文件名保存了文件
gdpOz <- read_excel("C:/Users/stand/Documents/1.Excel/GDP_2013-18.xlsx",sheet="Sheet1")
它给出了同样的错误,用read.excel
是挑剔和不可预测的,
所以我尝试了此转换,
Date.POSIXlt(Oz[23,],format , tryFormats = c("%Y-%m-%d", "%Y/%m/%d")
和许多其他组合都没有成功, 我发现,excel文件另存为以下内容,将其另存为通用文本,无论如何都证明是完全无法管理的。 Excel save as xlsx
但是,如果您将以下格式转换为短日期格式后另存为csv文件excel short date csv format
然后在R中使用此命令
Oz2 <- read.csv.zoo("C:/Users/stand/Documents/1.Excel/gdpOz.csv")
它转换时没有任何后顾之忧, 问题出在带有xlsx文件的Excels日期格式中,R更喜欢csv文件。 出于某种原因,每次保存或转换任何文件时,如果尝试重新保存同一文件,则必须更改文件名,否则无论如何它都将无法工作。 大多数不是电子表格技术人员或高级用户的人可能从未遇到过太多R的excel问题,或者他们每次都能得到?谁知道?