r - 为实验当天创建变量

标签 r date

我有一个跨越一个月的大型数据集,数据标记在名为 txn_date 的列中,如下所示。 (这是它的玩具复制品)

dat1 <- read.table(text = "var1 txn_date 
5 2020-10-25
1 2020-10-25
3 2020-10-26
4 2020-10-27
1 2020-10-27 
3 2020-10-31  
3 2020-11-01 
8 2020-11-02 ", header = TRUE)

理想情况下,我希望在数据框中为数据中的每个日期获取一列,我认为可以通过首先获取第一个出现的日期为 1 的单个列,然后依此类推来完成。

所以像这样

dat1 <- read.table(text = "var1 txn_date day
5 2020-10-25 1
1 2020-10-25 1
3 2020-10-26 2
4 2020-10-27 3
1 2020-10-27 3
3 2020-10-31 7  
3 2020-11-01 8
8 2020-11-12 9 ", header = TRUE

我不太确定如何得到这个。在我的实际数据框中,txn_date 列是as.Date。我认为,如果我可以获得上面列出的单个 day 列(然后将其转换为一个因子),那么如果需要,我总是可以对该列的实际级别进行热编码。最终,我需要使用实验当天作为我要运行的回归中的回归量。

类似于y ~ x + day_1 + day_2 +...+错误

最佳答案

这样合适吗?

library(tidyverse)
dat1 <- read.table(text = "var1 txn_date 
5 2020-10-25
1 2020-10-25
3 2020-10-26
4 2020-10-27
1 2020-10-27 
3 2020-10-31  
3 2020-11-01 
8 2020-11-02 ", header = TRUE)

dat1$txn_date <- as.Date(dat1$txn_date)
dat1 %>% 
  mutate(days = txn_date - txn_date[1] + 1)
#  var1   txn_date   days
#1    5 2020-10-25 1 days
#2    1 2020-10-25 1 days
#3    3 2020-10-26 2 days
#4    4 2020-10-27 3 days
#5    1 2020-10-27 3 days
#6    3 2020-10-31 7 days
#7    3 2020-11-01 8 days
#8    8 2020-11-02 9 days

关于r - 为实验当天创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67732584/

相关文章:

r - R 中 svm 特征选择的示例

R - ggplot2 'dodge' geom_step() 重叠 geom_bar()

r - devtools::install_github() - 忽略 SSL 证书验证失败

r - 创建数据框 R 时使用函数参数的值

linux - 如何获取特定格式的时间 - Linux

mysql - 如何组合多个查询

r - 比较 data.table 中的连续行并替换行值

python - 使用 Python 获取一周中两天之间的日期

flash - 有没有好的 AS3 日期库?

javascript 将 javascript 文本转换为日期对象 "Invalid date"