- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个物种跨越几年的计数数据。我只想查看每年冬季每个物种的丰度动态。问题是冬季跨越两年,11 月、12 月和明年 1 月。现在,我想结合连续两年冬季月份中每个物种的丰度并进行一些分析。例如,我想在第一轮中对 2005 年 11 月至 12 月和 2006 年 1 月进行子集分析,然后在第二轮中对 2006 年 11 月至 12 月和 2007 年 1 月进行子集分析,然后重复相同的分析,依此类推....我如何在 R 中做到这一点?
数据示例
date species year month day abundance temp
9/3/2005 A 2005 9 3 3 19
9/15/2005 B 2005 9 15 30 16
10/4/2005 A 2005 10 4 24 12
11/6/2005 A 2005 11 6 32 14
12/8/2005 A 2005 12 8 15 13
1/3/2005 A 2006 1 3 64 19
1/4/2006 B 2006 1 4 2 13
2/10/2006 A 2006 2 10 56 12
2/8/2006 A 2006 1 3 34 19
3/9/2006 A 2006 1 3 64 19
最佳答案
我将您的日期列转换为日期类(可能使用 lubridate
)并删除年月日列,因为它们是多余的。
然后用季节性年份(定义为年份,除非月份是一月,否则就是上一年)创建一个新列。另一列使用 case_when
定义行的季节。
library(dplyr)
library(lubridate)
# converts to date format
df$date <- mdy(df$date)
# add in columns
df <- mutate(df,
season_year = ifelse(month(date) == 1, year(date) - 1, year(date)),
season = case_when(
month(date) %in% c(2, 3, 4) ~ "Spring",
month(date) %in% c(5, 6, 7) ~ "Summer",
month(date) %in% c(8, 9, 10) ~ "Autumn",
month(date) %in% c(11, 12, 1) ~ "Winter",
T ~ NA_character_
))
# date species abundance temp season_year season
# 1 2005-09-03 A 3 19 2005 Autumn
# 2 2005-09-15 B 30 16 2005 Autumn
# 3 2005-10-04 A 24 12 2005 Autumn
# 4 2005-11-06 A 32 14 2005 Winter
# 5 2005-12-08 A 15 13 2005 Winter
# 6 2005-01-03 A 64 19 2004 Winter
# 7 2006-01-04 B 2 13 2005 Winter
# 8 2006-02-10 A 56 12 2006 Spring
# 9 2006-02-08 A 34 19 2006 Spring
# 10 2006-03-09 A 64 19 2006 Spring
然后您可以group_by()
和/或filter()
进一步分析您的数据:
df %>%
group_by(season_year) %>%
filter(season == "Winter") %>%
summarise(count = sum(abundance))
# # A tibble: 2 x 2
# season_year count
# <dbl> <int>
# 1 2004 64
# 2 2005 49
关于r - 如何合并连续两年的冬季月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52620981/
我有一个包含 70 年每小时数据的 pandas DataFrame,如下所示: pressure 2015-06-01 18:
我正在从我的服务器下载一个文件(我只获取最后写入时间属性的字节和日期时间),下载数据后我在本地计算机上创建一个新文件并希望设置最后写入时间属性。为此,我使用以下方法: procedure SetFil
我打算显示 PST 时区的时间。我找到了一种将时区 PDT 与时间一起嵌入的格式,但我想知道在冬季这是否会更改为 PST。 这就是代码现在的样子。 public static final String
我正在编写一个脚本,该脚本应该根据日期范围确定一年中的“季节”: 例如: January 1 - April 1: Winter April 2 - June 30: Spring July 1 -
我有一个特定日期的 javascript 倒计时,我想根据季节( Spring 、夏季、秋季、冬季)更改部分的背景图像 4 季时间表: Spring (三月至五月)夏季(六月至八月)秋季(九月至十一月
我是一名优秀的程序员,十分优秀!