R将字符向量组合到数据帧中,向量名称为行ID

时间:2016-08-05 00:00:41

标签: r vector dataframe

我有三个角色向量:

row.get('extra', '') # rather than row['extra']

我希望将它们组合成一个数据帧,使它们看起来像这样:

blue <-c("Ti","Ka","Vv","Cn")
Turq <-c("Cc","Wx","Oq","Yt")
Indigo <-c("Gb","Ap")

我似乎无法找到方法

4 个答案:

答案 0 :(得分:3)

您可以将矢量放在命名列表中,然后使用/usr/bin/vmmap -www $pid

stack

答案 1 :(得分:0)

这不是很有效,但它可以完成工作。

blue <-c("Ti","Ka","Vv","Cn")
Turq <-c("Cc","Wx","Oq","Yt")
Indigo <-c("Gb","Ap")

#assumes no duplicates in the original vectors.
df<-as.data.frame(cbind(blue, Turq, Indigo))

library(tidyr)
df<-unique(gather(df))

这会产生一些警告,但会提供您要求的结果。 cbind开始重复向量,以便所有向量都是相同的长度。

答案 2 :(得分:0)

尝试:

df<-data.frame(blue,Turq,Indigo)
library(reshape)
unique(melt(cbind(1:nrow(df),df),id=1)[,-1])

   variable value
1      blue    Ti
2      blue    Ka
3      blue    Vv
4      blue    Cn
5      Turq    Cc
6      Turq    Wx
7      Turq    Oq
8      Turq    Yt
9    Indigo    Gb
10   Indigo    Ap

答案 3 :(得分:0)

我们可以在将矢量放入melt

之后使用list
library(reshape2)
melt(mget(c("blue", "Turq", "Indigo")))[2:1]
#       L1 value
#1    blue    Ti
#2    blue    Ka
#3    blue    Vv
#4    blue    Cn
#5    Turq    Cc
#6    Turq    Wx
#7    Turq    Oq
#8    Turq    Yt
#9  Indigo    Gb
#10 Indigo    Ap