微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

r – * _join,后缀为空

公平警告:这可能会挂起您的操作系统.

当左侧或右侧后缀中的任何一个被指定为空(”)时,来自dplyr的* _join()失败,例如

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,suffix=c('.a','.b'))

同时,S3泛型merge()(base)对空后缀没有问题:

merge(data.frame(x=1,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,'.b')) %>%
  setNames(gsub('\\.a$','',names(.)))

原文地址:https://www.jb51.cc/mssql/76870.html

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

相关推荐