是否有一种方法可以通过存储在R中另一个DataFrame中的唯一变量来过滤DataFrame

问题描述 投票:1回答:2

我正在尝试根据另一个数据框中的变量来过滤嵌套数据框的列表,并在应用过滤器后为每个分组变量创建一个新的数据框。

样本数据集和组

combined <- data.frame(
  client = c('aaa','aaa','aaa','bbb','bbb','ccc','ccc','ddd','ddd'),
  type = c('norm','reg','opt','norm','norm','reg','opt','opt','opt'),
  age = c('>50','>50','75+','<25','<25','>50','75+','25-50','25-50'),
  IsActive = c('1','0','0','1','1','0','1','1','1')
)

# get unique variable combinations
unique_vars <- combined %>% 
  distinct() %>%
  group_split(client)

我认为unique_vars中的变量组合可以应用于原始数据帧combined,以基于每个客户端的唯一变量创建单独的数据帧。我要创建的输出是原始数据帧中每个客户端的变量的每种组合及其唯一变量的数据帧。因此,作为示例,将基于unique_vars[1]为客户端“ aaa”创建3个数据帧,但基于unique_vars[4]为客户端“ ddd”创建的只有1个数据帧,因为对于客户端“ ddd”仅存在一行可能的变量组合] >

关于最佳方法的任何建议?

我正在尝试根据另一个数据框中的变量来过滤嵌套数据框的列表,并在应用过滤器后为每个分组变量创建一个新的数据框。样本数据集和组...

r dplyr purrr
2个回答
0
投票

涉及dplyrpurrr的一个选项可能是:


0
投票

使用distinct中的dplyr命令>

split(distinct(combined),row.names(distinct(combined)))

© www.soinside.com 2019 - 2024. All rights reserved.