使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。