如何将R中的两列合并为一列向量/列表?
我有一个包含两列的数据框:如何将R中的两列合并为一列向量/列表?,r,R,我有一个包含两列的数据框: | X | Y | |-------|-------| | x1 | y1 | | x2 | y2 | | x3 | y3 | | ... | ... | | x1000 | y1000 | 如何创建第三列,其中包含从前两列获取的可访问值的向量/列表 | X | Y | Z | |-------|-------|------------------| | x
| 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) |
一个选项是将“X”、“Y”中的元素连接成
向量
,并返回带有map2的列表
library(dplyr)
library(purrr)
df1 %>%
mutate(Z = map2(X, Y, c))
或者另一个选项是将粘贴到字符串中
library(stringr)
df1 %>%
mutate(Z = str_c(X, Y, sep=","))
或者使用Map
frombase R
df1$Z <- Map(c, df1$X, df1$Y)
df1$Z谢谢,但不知何故,我在Z中得到的都是向量,比如c(2,2),c(3,3),c(38,38)等等。无论我尝试哪种选择。我如何访问真实值?因为df$Z[1]
返回22
@tnpchik您能在控制台上键入c(2,2)
并查看它返回什么吗?它是一个向量,就像Z
的每个元素都是一个向量>c(2,2)[1]22@tnpchlk这不是df$Z[[1]]
returnsUp吗,但是这些值是从哪里来的呢?我想要的是c(myStringFromX,myStringFromY),而不是c(2,2)。