尝试了 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 = TRUE
,merge
不会引发错误,因为它允许通过 ...
提供其他参数。在你的情况下,参数被忽略。因此,当您设置 ALL = TRUE
时,merge
仅使用默认值,即 all = FALSE
。
关于R:merge()中的ALL和all有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363422/