如何将两列合并到R中的向量/列表的一列中?

时间:2019-06-03 21:41:01

标签: r

我有一个包含两列的数据框:

|   X   |   Y   |
|-------|-------|
|   x1  |   y1  |
|   x2  |   y2  |
|   x3  |   y3  |
|  ...  |  ...  |
| x1000 | y1000 |

如何创建第三列,该列由包含前两个值的可访问值的向量/列表组成?

|   X   |   Y   |         Z        |
|-------|-------|------------------|
|   x1  |   y1  |     c(x1,y1)     |  
|   x2  |   y2  |     c(x2,y2)     |
|   x3  |   y3  |     c(x3,y3)     |
|  ...  |  ...  |        ...       |
| x1000 | y1000 |  c(x1000,y1000)  |

1 个答案:

答案 0 :(得分:1)

一种选择是将“ X”,“ Y”中的元素连接到vector中,并用list返回map2

library(dplyr)
library(purrr)
df1 %>%
     mutate(Z = map2(X, Y, c))

或者另一个选择是将paste转换为字符串

library(stringr)
df1 %>%
     mutate(Z = str_c(X, Y, sep=","))

或者使用Map中的base R

df1$Z <- Map(c, df1$X, df1$Y)