Stata函数qofd()
,mofd()
和wofd()
的 R 等效项是什么?
我没有在寻找将日期转换为字符串的任何 R 函数(例如,使用10/13/2016
将2006q4
转换为qofd()
)。
我想要将日期转换为float格式的函数,该函数可以直接用于回归(无需转换为其他格式),并且在查看数据时可以显示为2006q4
。
答案 0 :(得分:2)
如果d
是Date
类的,则as.numeric(d)
给出自UNIX纪元(1970年1月1日)以来的天数。如果在回归中使用了Date
类变量,则该变量是本示例中使用的数字矢量。
y <- (1:10)^2
x <- as.Date("2000-01-01") + 0:9
xx <- as.numeric(x)
identical(unname(coef(lm(y ~ x))), unname(coef(lm(y ~ xx))))
## [1] TRUE
zoo软件包具有yearmon
和yearqtr
类,如下所示显示,但在内部表示为year + fraction。对于yearmon
,该分数对于1月为0,对于2月为1/12,...,对于12月为11/12。对于yearqtr
,对于Q1,该分数是0,对于Q2是1 / 4,2 /第三季度为4,第四季度为3/4。
这是默认情况下呈现这些类的对象的方式。 format
可用于获取其他格式。请参见Zoo软件包中的?yearmon
。
library(zoo)
as.yearmon("2000-01")
## [1] "Jan 2000"
as.yearqtr("2000-1")
## [1] "2000 Q1"
在此我们显示,对yearmon
变量进行回归与对其数字表示形式进行回归是相同的。可以为yearqtr
给出类似的示例。 y
来自上方。
ym <- as.yearmon(2000) + 0:9/12
num <- as.numeric(ym)
identical(unname(coef(lm(y ~ ym))), unname(coef(lm(y ~ num))))
## [1] TRUE
此动物园插图中定义的单行nextfri
函数:
https://cran.r-project.org/web/packages/zoo/vignettes/zoo-quickref.pdf
仅可用于将日期标准化为星期五。将该公式中的5替换为0到6之间的另一个数字,即可得出星期几。
library(zoo)
yy <- (1:365)^2
ww <- nextfri(as.Date("2019-01-01") + 0:364)
# regress yy on next Friday
lm(yy ~ ww)