【发布时间】:2020-02-28 02:04:34
【问题描述】:
我有三列。第一个很大,包含各种字母。第二个是相同的大小,但包含更少的带有一些 NA 的字母。每个字母都可以在较大的列中找到。第三列的大小也相同,但包含第二列的值和相应的 NA。
我的问题是如何使第二列和第三列重新排列,以便第二列尽可能与第一列匹配。
我觉得答案与左连接有关,但我想不通。
用文字解释有点奇怪,但例子很容易说明。
# Original Situation
Large <- c("B", "D", "C", "A", "E")
Small <- c("D", "A", NA, NA, NA)
Number <- c(5, 12, NA, NA, NA)
data.frame(Large, Small, Number)
#> Large Small Number
#> 1 B D 5
#> 2 D A 12
#> 3 C <NA> NA
#> 4 A <NA> NA
#> 5 E <NA> NA
# I want it to finish like this:
Large <- c("B", "D", "C", "A", "E")
Small <- c(NA, "D", NA, "A", NA)
Number <- c(NA, 5, NA, 12, NA)
data.frame(Large, Small, Number)
#> Large Small Number
#> 1 B <NA> NA
#> 2 D D 5
#> 3 C <NA> NA
#> 4 A A 12
#> 5 E <NA> NA
【问题讨论】:
-
Large和Small中的值是否唯一?如果不是,当有多个匹配时,期望的结果是什么?