假设我有两个具有相同维度和列名称的数据框:
library(tidyverse)
x <- tribble(
~x, ~y, ~z,
1,2,3,
2,3,4,
3,4,5
)
y <- tribble(
~x, ~y, ~z,
"a","b","c",
"b","c","d",
"c","d","e"
)
Run Code Online (Sandbox Code Playgroud)
我如何结合它们来创建这个:
# A tibble: 3 x 3
x y z
<chr> <chr> <chr>
1 1a 2b 3c
2 2b 3c 4d
3 3c 4d 5e
Run Code Online (Sandbox Code Playgroud)
我最初的想法是做这样的事情,但是没有用:
paste0(x, y)
Run Code Online (Sandbox Code Playgroud)
使用来自purrr的map2:
library(purrr)
map2_dfr(x, y, paste0)
Run Code Online (Sandbox Code Playgroud)
给予:
# A tibble: 3 x 3
x y z
<chr> <chr> <chr>
1 1a 2b 3c
2 2b 3c 4d
3 3c 4d 5e
Run Code Online (Sandbox Code Playgroud)
无需任何程序包就可以以几乎相同的方式完成此操作:
as.data.frame(mapply(paste0, x, y), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
在R devel中,可以这样写:
list2DF(mapply(paste0, x, y))
Run Code Online (Sandbox Code Playgroud)