我有一个跨越一个月的大型数据集,数据标记在名为 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/