在R中,合并并使用矢量名称作为列名

mat*_*ash 3 r vector

在RI合并两个向量a和b:

a <- c(100,250)
b <- c(0,100,200)
foo <- merge(a,b,all=TRUE)
Run Code Online (Sandbox Code Playgroud)

当我检查foo时,我看到merge函数命名了两列x和y:

> foo
    x   y
1 100   0
2 250   0
3 100 100
4 250 100
5 100 200
6 250 200
Run Code Online (Sandbox Code Playgroud)

是否有一种优雅的方法可以将原始变量名称保留为结果数据框中的列名?"优雅"我指的是比明确重命名列更简单的东西.

akr*_*run 8

我们可以转换为data.frame和 merge

merge(as.data.frame(a), as.data.frame(b), all = TRUE)
#    a   b
#1 100   0
#2 250   0
#3 100 100
#4 250 100
#5 100 200
#6 250 200
Run Code Online (Sandbox Code Playgroud)


TAR*_*man 8

您还可以使用expand.grid()您的特定用例.

expand.grid(a = a,b = b)
    a   b
1 100   0
2 250   0
3 100 100
4 250 100
5 100 200
6 250 200
Run Code Online (Sandbox Code Playgroud)