公平警告:这可能会导致操作系统挂起。
当左侧或右侧后缀中的任何一个被指定为空(*_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
答案 0 :(得分:6)
当我偶然发现这个错误时,这很有趣。以下将使用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(.)))