【问题标题】:R: what's difference between ALL and all in merge()?R: ALL 和 all 中的 merge() 有什么区别?
【发布时间】:2017-09-07 20:57:40
【问题描述】:

尝试了https://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html 中的示例。 然后我发现当我们将 ALL = TRUE 和 all = TRUE 设置为 merge() 的参数时,我得到了不同的结果(一个有 6 行,另一个有 7 行)。 发生了什么?任何人都可以提供一些提示吗?谢谢。

> authors <- data.frame(
+     surname = I(c("Tukey", "Venables", "Tierney", "Ripley", "McNeil")),
+     nationality = c("US", "Australia", "US", "UK", "Australia"),
+     deceased = c("yes", rep("no", 4)))
> books <- data.frame(
+     name = I(c("Tukey", "Venables", "Tierney",
+                "Ripley", "Ripley", "McNeil", "R Core")),
+     title = c("Exploratory Data Analysis",
+               "Modern Applied Statistics ...",
+               "LISP-STAT",
+               "Spatial Statistics", "Stochastic Simulation",
+               "Interactive Data Analysis",
+               "An Introduction to R"),
+     other.author = c(NA, "Ripley", NA, NA, NA, NA,
+                      "Venables & Smith"))

> m1<-merge(authors, books, by.x = "surname", by.y = "name", ALL = TRUE)
> m1
   surname nationality deceased                         title other.author
1   McNeil   Australia       no     Interactive Data Analysis         <NA>
2   Ripley          UK       no            Spatial Statistics         <NA>
3   Ripley          UK       no         Stochastic Simulation         <NA>
4  Tierney          US       no                     LISP-STAT         <NA>
5    Tukey          US      yes     Exploratory Data Analysis         <NA>
6 Venables   Australia       no Modern Applied Statistics ...       Ripley
> m2<-merge(authors, books, by.x = "surname", by.y = "name", all = TRUE)
> m2
   surname nationality deceased                         title     other.author
1   McNeil   Australia       no     Interactive Data Analysis             <NA>
2   R Core        <NA>     <NA>          An Introduction to R Venables & Smith
3   Ripley          UK       no            Spatial Statistics             <NA>
4   Ripley          UK       no         Stochastic Simulation             <NA>
5  Tierney          US       no                     LISP-STAT             <NA>
6    Tukey          US      yes     Exploratory Data Analysis             <NA>
7 Venables   Australia       no Modern Applied Statistics ...           Ripley

【问题讨论】:

    标签: r merge uppercase lowercase


    【解决方案1】:

    您观察到这种行为的原因是ALL 不是merge 的有效参数(它是小写all)。如果您指定ALL = TRUEmerge 不会抛出错误,因为它允许通过... 附加参数。在您的情况下,该参数被忽略。所以当你设置ALL = TRUE时,merge只是使用默认的all = FALSE

    【讨论】:

    • 感谢您的回答。我也在考虑这个问题,但是我没有看到像“ALL=TRUE”这样的警告没有被使用或忽略,所以我猜还有其他事情发生。
    猜你喜欢
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2021-07-25
    • 2019-12-21
    • 1970-01-01
    • 2014-03-31
    • 2017-06-06
    相关资源
    最近更新 更多