r - 为什么在合并两个数据框时出现此错误?
问题描述
我正在尝试按名为“团队”的列名合并两个数据框。
我的合并声明-
merge(RB,LB,by.x ="team")
我得到的错误是 -
merge.data.frame(RB, LB, by.x = "team") 中的错误:'by.x' 和 'by.y' 指定不同的列数。
#Create a data frame to store set of Right-Backs
RB=data.frame(
team=c("Liverpool",
"Manchester United",
"Chelsea","Atletico Madrid",
"Juventus",
"Real Madrid"),
players=c("Trent-Alexandre Arnold",
"Diogo Dalot",
"Cesar Azpilicueta",
"Keiran Trippier",
"Danilo","Carvajal")
,stringsAsFactors = FALSE)
#Create a data frame to store set of Left-Backs
LB=data.frame(
team=c("Manchester United",
"Real Madrid",
"Liverpool",
"Chelsea",
"Juventus",
"Atletico Madrid"
),
players=c("Luke Shaw","Marcelo","Andrew Robertson","Marcos Alonso","Alex Sandro", "Renan Lodi" ),
stringsAsFactors = FALSE
)
解决方案
您必须同时提供by.x
and by.y
,或者只使用by
:
df <- merge(RB,LB, by.x="team", by.y="team")
df <- merge(RB,LB, by="team")
从参考:
默认情况下,数据框会合并到它们都具有名称的列上,但可以通过 by.x 和 by.y 给出单独的列规范。
如果不使用,则默认使用等于by.y
的输入。因为只有一列和- 两列(即它们具有不同的长度),所以函数终止。by
intersect(names(x), names(y))
by.x
by.y
推荐阅读
- excel - VBA 对象名称
- angular - 单击后退按钮时,Ionic Angular 应用程序将进入登录屏幕
- apache-spark - spark中处理重复值较多的列时尽量减少存储空间
- firebase - 使用自定义令牌登录匿名用户会删除匿名状态
- c++ - 理解 PGM 数据并将 PGM 数据加载到向量/数组中
- java - 使用在 Java 中调用三参数构造函数的重载默认构造函数?
- javascript - Fluid-Framework 和 Signal-R 的区别
- javascript - 一个 3 字节宽的 UTF-8 字符如何只使用一个 UTF-16 代码单元?
- php - php get_meta_tags 没有得到结果(帮助)
- javascript - 我找不到小错误:Invalid shorthand property initializer 等