r - 如何添加与日期对应的数字列
问题描述
我正在尝试添加一列,并且我有一个看起来像这样的数据框
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
根据日期,我想在末尾添加另一列,即数字 1-6,具体取决于将被称为主要日期的日期。例如,日期 3/21/2020-3/23/2020 将是 1,希望看起来像这样
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 函数来做到这一点,但我不确定如何将它与日期一起使用。
解决方案
这是一个案例cut
。不过,您的日期似乎格式不正确,所以首先我们需要
dat$Date <- as.Date(dat$Date, format="%m/%d/%Y")
然后
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")
推荐阅读
- html - 悬停在触发另一个元素悬停的元素上。问题是什么?
- javascript - 更新数据而不发送后端 xhr 请求 jQuery
- r - 匹配两个数据框列中的字符串并创建一个新列
- ruby - 我遇到了这个关于保管箱的代码
- python - 如何为模型十进制字段django指定最大值?
- tidyeval - 如何在函数中执行 fct_drop(使用 tidy eval)?
- ios - 将 Cocoapod 添加到 Cocoapod
- c# - 如何在新选项卡或窗口中打开 PDF 文件,而不是使用 C# 和 ASP.NET MVC 下载它?
- javascript - 使用 HTML/CSS/Javascript 创建带有数据侧视图的图像网格
- r - 如何在R中的csv文件中逐行循环