向量中基于条件的子集数据帧

erc

我有两个数据框

#df1
type <- c("A", "B", "C")
day_start <- c(5,8,4)
day_end <- c(12,10,11)
df1 <- cbind.data.frame(type, day_start, day_end)
df1
  type day_start day_end
1    A         5      12
2    B         8      10
3    C         4      11

#df2
value <- 1:10
day <- 4:13
df2 <- cbind.data.frame(day, value)
   day value
1    4     1
2    5     2
3    6     3
4    7     4
5    8     5
6    9     6
7   10     7
8   11     8
9   12     9
10  13    10

我想对df2进行子集处理,以使df1中的每个因子“类型”级别都有其自己的数据框,仅包括该因子级别的day_start和day_end之间的行/天。

预期结果为“ A”将是..

list_of_dataframes$df_A
   day value
1    5     2
2    6     3
3    7     4
4    8     5
5    9     6
6   10     7
7   11     8
8   12     9

在SO上发现了这个问题,并提出了建议使用mapply()的答案,但是,我只是无法弄清楚我必须如何调整那里给出的代码以适合我的数据和所需的结果。有人可以帮我吗?

汤玛士

以下解决方案假定您拥有几天的所有整数值,但是如果这种假设是合理的,那么它很简单:

> apply(df1, 1, function(x) df2[df2$day %in% x[2]:x[3],])
[[1]]
  day value
2   5     2
3   6     3
4   7     4
5   8     5
6   9     6
7  10     7
8  11     8
9  12     9

[[2]]
  day value
5   8     5
6   9     6
7  10     7

[[3]]
  day value
1   4     1
2   5     2
3   6     3
4   7     4
5   8     5
6   9     6
7  10     7
8  11     8

您可以使用setNames命名列表中的数据框:

setNames(apply(df1, 1, function(x) df2[df2$day %in% x[2]:x[3],]),df1[,1])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

向量中基于搜索模式的子集数据帧

来自分类Dev

基于条件熊猫的子集数据帧

来自分类Dev

R中的条件子集数据帧

来自分类Dev

基于列名称的字符向量的子集数据帧

来自分类Dev

基于 R 中条件的子集数据

来自分类Dev

R中的子集数据帧基于向量中指定的列表(使用“开头为”表达式或等效形式)

来自分类Dev

基于每组行数的子集数据帧

来自分类Dev

如何基于colMeans子集数据帧

来自分类Dev

基于重复模式的子集数据帧

来自分类Dev

基于至少5个连续值的向量序列的子集数据帧

来自分类Dev

基于条件语句的子集数据

来自分类Dev

python中的子集数据帧

来自分类Dev

如何用数据的critera向量子集数据帧?

来自分类Dev

日期在R中的日期向量的x天之内的子集数据帧

来自分类Dev

根据存储在独立有序向量中的值对子集数据帧

来自分类Dev

用逻辑矩阵和向量子集数据帧

来自分类Dev

基于R中列内因子级别的层次偏好的子集数据帧

来自分类Dev

基于R中包含变量名的对象的子集数据帧

来自分类Dev

在熊猫中,如何基于groupby准则获取多个子集数据帧?

来自分类Dev

R-基于重复序列的子集数据帧

来自分类Dev

如何基于R中的条件对数据帧进行子集

来自分类Dev

基于条件的子集ar数据帧

来自分类Dev

R中基于条件和跨国家/行业的同等子集数据

来自分类Dev

在lapply中按2列动态子集数据帧

来自分类Dev

列表中的R重塑和子集数据帧

来自分类Dev

按条件子集数据

来自分类Dev

按条件子集数据

来自分类Dev

基于列中的数值的子集数据表

来自分类Dev

基于列中的数值的子集数据表