R 如何添加与日期对应的数字列
我试图添加一个列,我有一个数据框,看起来像这样R 如何添加与日期对应的数字列,r,mutate,R,Mutate,我试图添加一个列,我有一个数据框,看起来像这样 Date New.Recap Site 1 3/21/2020 N Jag 2 3/21/2020 N Jag 3 3/22/2020 N Jag 4 3/23/2020 N Jag 5 3/23/2020 N Jag 6 3/23/2020 R Jag 7 3/23/2020
Date New.Recap Site
1 3/21/2020 N Jag
2 3/21/2020 N Jag
3 3/22/2020 N Jag
4 3/23/2020 N Jag
5 3/23/2020 N Jag
6 3/23/2020 R Jag
7 3/23/2020 N Jag
8 3/23/2020 N Jag
9 3/23/2020 R Jag
10 3/23/2020 N Jag
11 3/23/2020 N Jag
12 3/24/2020 N Bla
13 3/24/2020 N Bla
14 3/25/2020 N Bla
15 3/25/2020 N Bla
Date Primary New.Recap Site
1 3/21/2020 1 N Jag
2 3/21/2020 1 N Jag
3 3/22/2020 1 N Jag
4 3/23/2020 1 N Jag
5 3/23/2020 1 N Jag
6 3/23/2020 1 R Jag
7 3/23/2020 1 N Jag
8 3/23/2020 1 N Jag
9 3/23/2020 1 R Jag
10 3/23/2020 1 N Jag
11 3/23/2020 1 N Jag
12 3/24/2020 2 N Bla
13 3/24/2020 2 N Bla
14 3/25/2020 2 N Bla
15 3/25/2020 2 N Bla
根据日期,我想在末尾添加另一列,即数字1-6,具体取决于将被称为主要日期的日期。例如,日期2020年3月21日至2020年3月23日将是1,希望是这样
Date New.Recap Site
1 3/21/2020 N Jag
2 3/21/2020 N Jag
3 3/22/2020 N Jag
4 3/23/2020 N Jag
5 3/23/2020 N Jag
6 3/23/2020 R Jag
7 3/23/2020 N Jag
8 3/23/2020 N Jag
9 3/23/2020 R Jag
10 3/23/2020 N Jag
11 3/23/2020 N Jag
12 3/24/2020 N Bla
13 3/24/2020 N Bla
14 3/25/2020 N Bla
15 3/25/2020 N Bla
Date Primary New.Recap Site
1 3/21/2020 1 N Jag
2 3/21/2020 1 N Jag
3 3/22/2020 1 N Jag
4 3/23/2020 1 N Jag
5 3/23/2020 1 N Jag
6 3/23/2020 1 R Jag
7 3/23/2020 1 N Jag
8 3/23/2020 1 N Jag
9 3/23/2020 1 R Jag
10 3/23/2020 1 N Jag
11 3/23/2020 1 N Jag
12 3/24/2020 2 N Bla
13 3/24/2020 2 N Bla
14 3/25/2020 2 N Bla
15 3/25/2020 2 N Bla
基本上,根据日期的不同,我有一系列的日期属于1-6天的类别。日期总是以连续三天为一组。对于图形,我需要使用主要的1-6个数字,而不是日期。我一直在尝试使用mutate函数来实现这一点,但我不确定如何将其用于日期。如果我们有自定义日期要重新编码,请在
library(dplyr)
df1 %>%
mutate(Primary = case_when(Date %in%
c("3/21/2020", "3/22/2020", "3/23/2020")~ 1,
TRUE ~ 2), .after = 'Date')
-输出
# Date Primary New.Recap Site
#1 3/21/2020 1 N Jag
#2 3/21/2020 1 N Jag
#3 3/22/2020 1 N Jag
#4 3/23/2020 1 N Jag
#5 3/23/2020 1 N Jag
#6 3/23/2020 1 R Jag
#7 3/23/2020 1 N Jag
#8 3/23/2020 1 N Jag
#9 3/23/2020 1 R Jag
#10 3/23/2020 1 N Jag
#11 3/23/2020 1 N Jag
#12 3/24/2020 2 N Bla
#13 3/24/2020 2 N Bla
#14 3/25/2020 2 N Bla
#15 3/25/2020 2 N Bla
或者另一个选项是具有“日期”和相应“主要”值的键值数据集
keyval <- data.frame(Date = c("3/21/2020", "3/22/2020", "3/23/2020",
"3/24/2020"), Primary = c(1, 1, 1, 2))
数据
df1这是cut
的情况。不过,你的约会形式似乎不太合适,所以首先我们需要
dat$Date <- as.Date(dat$Date, format="%m/%d/%Y")
dat$Date
dat <- transform(dat,
Primary=cut(Date, c(min(Date), as.Date("2020-03-24"), max(Date)),
include.lowest=T, labels=1:2))
dat
# Date New.Recap Site Primary
# 1 2020-03-21 N Jag 1
# 2 2020-03-21 N Jag 1
# 3 2020-03-22 N Jag 1
# 4 2020-03-23 N Jag 1
# 5 2020-03-23 N Jag 1
# 6 2020-03-23 R Jag 1
# 7 2020-03-23 N Jag 1
# 8 2020-03-23 N Jag 1
# 9 2020-03-23 R Jag 1
# 10 2020-03-23 N Jag 1
# 11 2020-03-23 N Jag 1
# 12 2020-03-24 N Bla 2
# 13 2020-03-24 N Bla 2
# 14 2020-03-25 N Bla 2
# 15 2020-03-25 N Bla 2
dat <- structure(list(Date = structure(c(18342, 18342, 18343, 18344,
18344, 18344, 18344, 18344, 18344, 18344, 18344, 18345, 18345,
18346, 18346), class = "Date"), New.Recap = c("N", "N", "N",
"N", "N", "R", "N", "N", "R", "N", "N", "N", "N", "N", "N"),
Site = c("Jag", "Jag", "Jag", "Jag", "Jag", "Jag", "Jag",
"Jag", "Jag", "Jag", "Jag", "Bla", "Bla", "Bla", "Bla")), row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15"), class = "data.frame")