在没有公共变量的情况下执行dplyr full_join以混合数据帧
发布时间:2020-12-12 07:30:46 所属栏目:MsSql教程 来源:网络整理
导读:使用dplyr full_join()操作,我试图执行基本的merge()操作的等效操作,其中不存在公共变量(无法满足“by =”参数).这将混合两个数据帧并返回所有可能的组合. 但是,当前的full_join()函数需要一个公共变量.我无法找到另一个可以帮助解决此问题的dplyr函数.如何使
使用dplyr full_join()操作,我试图执行基本的merge()操作的等效操作,其中不存在公共变量(无法满足“by =”参数).这将混合两个数据帧并返回所有可能的组合.
但是,当前的full_join()函数需要一个公共变量.我无法找到另一个可以帮助解决此问题的dplyr函数.如何使用特定于dplyr库的函数执行此操作? df_a = data.frame(department=c(1,2,3,4)) df_b = data.frame(period=c(2014,2015,2016,2017)) #This works as desired big_df = merge(df_a,df_b) #I'd like to perform the following in a much bigger operation: big_df = dplyr::full_join(df_a,df_b) #Error: No common variables. Please specify `by` param. 解决方法你可以使用tidyr的交叉:crossing(df_a,df_b) department period 1 1 2014 2 1 2015 3 1 2016 4 1 2017 5 2 2014 6 2 2015 7 2 2016 8 2 2017 9 3 2014 10 3 2015 11 3 2016 12 3 2017 13 4 2014 14 4 2015 15 4 2016 16 4 2017 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |