公平警告:这可能会挂起您的操作系统。 *_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/