R:merge()中的ALL和all有什么区别?

标签 r merge uppercase lowercase

尝试了 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

最佳答案

您观察到此行为的原因是 ALL 不是 merge 的有效参数(它是小写的 all)。如果您指定 ALL = TRUEmerge 不会引发错误,因为它允许通过 ... 提供其他参数。在你的情况下,参数被忽略。因此,当您设置 ALL = TRUE 时,merge 仅使用默认值,即 all = FALSE

关于R:merge()中的ALL和all有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363422/

相关文章:

r - rcpp中的排列顺序

r - 使用maptools readShapePoly在R中打开SHP文件时出错

java - 单词中特定字符的大写或小写 "Java"

javascript - 合并循环中的对象

php - 将每个其他字母大写...

java - 使用 Java 字符串替换方法产生与预期不同的结果,为什么?

r - 如何为数据框中的每一行设置编号名称?

r - 统计过去 n 天内值变化的次数

merge - 在数据流任务中,如何使用其他源的值限制行流动?

java - 合并 ArrayList 的两个或多个元素