R 基于筛选条件创建数据帧列表
我将有一个列R 基于筛选条件创建数据帧列表,r,filter,tidyverse,R,Filter,Tidyverse,我将有一个列ID的数据集。我将数据帧过滤到冬季和夏季。我想根据ID进一步分割数据。在我的实际数据集中有100多个ID,所以我不想制作100个数据帧。相反,我想制作一个数据帧列表。我使用了group\u split函数来实现这一点,但是列表的数量在冬季和夏季之间并不均衡。我确信在冬天和夏天应该有相同数量的ID。有更好的方法吗 library(lubridate) date <- rep_len(seq(dmy("26-12-2010"), dmy("20-12-
ID
的数据集。我将数据帧过滤到冬季和夏季。我想根据ID进一步分割数据。在我的实际数据集中有100多个ID,所以我不想制作100个数据帧。相反,我想制作一个数据帧列表。我使用了group\u 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)
库(lubridate)
日期%
过滤器(月份百分比,单位为%c(01,02,03))$>%
分组依据(ID,.add=TRUE)%>%
#组分割(ID)
谢谢大家! 我认为
split
可以满足您的要求:生成一个帧列表
summer您的期望值是什么您的代码没有按编写的方式工作(df
!=df
),并且AnimalID
和DateAndTime
不存在。所以很难调试您的问题。试着包括一个。你检查过你“肯定知道”的东西是否是真的吗?我的预期输出是每个季节(冬季和夏季)的数据帧列表。这些列表中的每一个都是来自较大数据帧的单个ID。代码现在应该可以工作了,我在发布时忘记了更改这些代码。我道歉。是的,当我在不使用group\u split
函数的情况下过滤它们时,夏季和冬季数据框中的个体数量是相同的。我定义了它。它用于创建月份列,以便更容易按月份进行筛选。很抱歉。
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)