在dplyr管道中以非R标准列名称联接

时间:2019-05-17 12:00:09

标签: r dplyr

我知道如何加入:

library(dplyr)

d1 <- data_frame(
  x = letters[1:3],
  y = LETTERS[1:3],
  a = rnorm(3)
  )

d2 <- data_frame(
  x2 = letters[3:1],
  y2 = LETTERS[3:1],
  b = rnorm(3)
  )

left_join(d1, d2, by = c("x" = "x2", "y" = "y2"))

调用列y2时该怎么办:

bla y2

我尝试了各种方法但没有成功:

left_join(d1, d2, by = c("x" = "x2", "y" = "bla y2"))
left_join(d1, d2, by = c("x" = "x2", "y" = "`bla y2`"))
left_join(d1, d2, by = c("x" = "x2", "y" = `bla y2`))

1 个答案:

答案 0 :(得分:0)

在R中,您始终可以使用反引号指定列名,例如:

using MyVec = std::array<double, 3>;
void f(const MyVec& v) {
    const auto& [x, y, z] = v;
    // ...
}

但是在将列名传递给`bla y2` 时不需要这样做。  这应该起作用:

left_join

返回:

library(dplyr)

d1 <- data_frame(
  x = letters[1:3],
  y = LETTERS[1:3],
  a = rnorm(3)
)

d2 <- data_frame(
  x2 = letters[3:1],
  `bla y2` = LETTERS[3:1],
  b = rnorm(3)
)

left_join(d1, d2, by = c("x" = "x2", "y" = "bla y2"))