我正在尝试使用dplyr将函数应用于使用group_by函数分组的数据框 . 我正在使用do()将一个函数应用于分组数据的每一行 . 我想获取group_by变量的值,以便我可以在函数调用中使用它 .
所以,实际上,我有 -
tmp <-
my_data %>%
group_by(my_grouping_variable) %>%
do(my_function_call(data.frame(x = .$X, y = .$Y),
GROUP_BY_VARIABLE)
我确信我可以打电话给我,让它变得独一无二......
do(my_function_call(data.frame(x = .$X, y = .$Y),
unique(.$my_grouping_variable))
但是,它看起来很笨拙,并且无法为每个分组值调用唯一的 .
有没有办法在dplyr中获取group_by变量的值?
如果这是一个很容易回答的问题,我会过早地说抱歉 . 我保证我已经详尽地寻找答案 .
2 回答
您可以使用
groups()
,但是SE版本不存在,所以我不确定它在编程中的用途 .首先,如有必要,检查它是否是分组数据框:
inherits(data, "grouped_df")
.如果需要数据框的子集,可以嵌套组:
通常,您不会嵌套在管道链中,而是检查您的函数:
然后,您的函数应使用所有分组子集迭代列表列
data
. 如果你在mutate中使用一个函数,例如然后请注意,您的函数直接接收每个组的值,并作为类
structure
传递 . 这有点难以解释,只需尝试一下并逐步调试your_function_call
......