r - *_join 后缀为空

标签 r dplyr

公平警告:这可能会挂起您的操作系统。
*_join()来自 dplyr当左后缀或右后缀中的任何一个被指定为空( '' )时失败,例如

inner_join(data.frame(x=1, y=2),
           data.frame(x=1, y=3),
           by='x',
           suffix=c('', '.b'))

而以下工作正常:
inner_join(data.frame(x=1, y=2),
           data.frame(x=1, y=3),
           by='x',
           suffix=c('.a', '.b'))

同时,S3通用merge() (base) 空后缀没有问题:
merge(data.frame(x=1, y=2),
      data.frame(x=1, y=3),
      by='x',
      suffixes=c('', '.b'))

dplyr 包信息:
> packageVersion('dplyr')
[1] ‘0.5.0’

R 版本信息:
> version

platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          3.0                         
year           2016                        
month          05                          
day            03                          
svn rev        70573                       
language       R                           
version.string R version 3.3.0 (2016-05-03)
nickname       Supposedly Educational 

最佳答案

当我偶然发现这个错误时,这很有趣。以下将使用 dplyr 实现所需的效果使用后缀 ''.b

library(dplyr)
inner_join(data.frame(x=1, y=2),
           data.frame(x=1, y=3),
           by='x',
           suffix=c('.a', '.b')) %>%
  setNames(gsub('\\.a$', '', names(.)))

关于r - *_join 后缀为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40583046/

相关文章:

r - R 中 nlme 包中的 gls 函数出错

r - 如何将分类变量折叠成 R 中更少的元素

r - 根据 R 中的二维密度图计算值的概率

r - 在 mutate 函数中使用 contains()

r - 使用 stargazer 进行生活并出现错误

r - 按 R 中的组使用 NA 填写缺失的日期 - 日期范围末尾也包含 NA

r - dplyr 0.3.0.9000 如何正确使用 do()

r - 带有日期的 dplyr 中的 Mutate_if 或 mutate_at

r - 计算小于当前值的值的数量

r - 不规则时间序列的 dplyr 自定义滞后函数