【发布时间】:2021-07-21 00:56:15
【问题描述】:
我会有一个包含ID 列的数据集。我将它们过滤成冬季和夏季的数据框。我想根据 ID 进一步拆分数据。在我的实际数据集中有超过 100 个 ID,所以我不想制作 100 个数据帧。相反,我想制作一个数据框列表。我使用group_split 函数来执行此操作,但列表的数量在冬季和夏季之间出现不均。我确定冬天和夏天应该有相同数量的 ID。有更好的方法吗?
library(lubridate)
date <- rep_len(seq(dmy("26-12-2010"), dmy("20-12-2011"), by = "days"), 500)
ID <- rep(seq(1, 5), 100)
df <- data.frame(date = date,
x = runif(length(date), min = 60000, max = 80000),
y = runif(length(date), min = 800000, max = 900000),
ID)
df$month <- month(df$date)
summer <- df%>% arrange(ID, date) %>%
filter(month %in% 07:09) %>%
group_by(ID, .add = TRUE) %>%
group_split(ID)
winter <- df%>%
arrange(ID, date) %>%
filter(month %in% c(01,02,03)) $>%
group_by(ID, .add = TRUE) %>%
# group_split(ID)
谢谢!
【问题讨论】:
-
你的期望是什么
-
您的代码不能像所写的那样工作 (
df!=DF) 和AnimalID和DateAndTime不存在。所以很难调试你的问题。尝试包含minimal reproducible example。 -
你检查过你“确定”的事情是否属实吗?
-
我的预期输出将是每个季节(冬季和夏季)的数据框列表。这些列表中的每一个都是来自较大数据帧的单个 ID。代码现在应该可以工作了,我忘记在发布时更改它们。我很抱歉。是的,当我在没有
group_split函数的情况下过滤它们时,夏季和冬季数据框中的个人数量是相同的。 -
我定义了它。它用于创建月份列,以便更容易按月份过滤。对此感到抱歉。