r - 合并只有在我执行两次的情况下才有效?

Posted

技术标签:

【中文标题】r - 合并只有在我执行两次的情况下才有效?【英文标题】:r - merge is only working if I do it twice? 【发布时间】:2015-09-17 23:16:30 【问题描述】:

有人可以解释以下输出吗?

> "naics_new_code__c"%in%names(df)
[1] TRUE
> names(states)
[1] "application_state__c" "naics_new_code__c"    "loan_id"   "wa_credit_score__c"  
> df= merge(df,states,by = "loan_id")
> "naics_new_code__c"%in%names(df)
[1] FALSE
> df= merge(df,states,by = "loan_id")
> "naics_new_code__c"%in%names(df)
[1] TRUE

因此,如您所见,在第一次合并时,字段“naics_new_code__c”并没有附加到我的 df。但是,在完全多余的第二次合并中,它确实如此。为什么会发生这种情况?

注意:这是一个关于 r 的理论问题。在这种情况下,添加一个可重复的示例不仅是多余的,而且会使有类似问题的其他人自己查找和回答的答案变得不那么普遍和有效。

最好的,

保罗

【问题讨论】:

names(df) 最初是怎么说的? 它给出了df中列的名称 @Paul,你试过用 ' 请提供reproducible example 一个可重现的例子使用您的专有数据当然没有必要。但是通过提供内置或模拟数据的可重现示例来证明问题是一个很好的问题,并且可能会将您的一些反对票转换为赞成票。 【参考方案1】:

来自merge的文档:

如果数据框中未用于合并的列有任何共同点 名称,这些带有后缀(默认为“.x”和“.y”)以尝试 使结果的名称唯一。如果这是不可能的,一个 抛出错误。

根据您之前和之后的names 结果,情况似乎是这样。

【讨论】:

以上是关于r - 合并只有在我执行两次的情况下才有效?的主要内容,如果未能解决你的问题,请参考以下文章

RestKit / CoreData:两次请求相同的URL时插入重复的对象而不是合并

用不同的语言编译同一个文件两次的惯用方法是啥?

Angular:只有在授权的情况下才从服务器加载延迟加载的模块(使用 JWT)

.net core 中如何有效屏蔽重复提交

.net core 中如何有效屏蔽重复提交

.net core 中如何有效屏蔽重复提交