一次拆分多个列,维护某些元素并拆分它们

时间:2014-01-21 20:56:50

标签: r split dataframe

我有这样的数据框。

  

input = read.table('input',header = T,sep ='\ t')

v1  v2  v3  v4  v5
1   E   Z,D 1:115:3:0.0 0/1/2:71:7,5:0.003,0.009
3   ZE  AB,CD,FG    0/3:331:9:0.00588   0/2:235:8:0.04704

我将v3拆分为“,”

  

v3.input = strsplit(as.character(输入$ v3),“,”)

并通过data.frame()

复制v1值
  

df = data.frame(v1 = rep(输入$ v1,sapply(v3.input,length)),v3 = unlist(v3.input))

但是我想在v3列中插入相应的v2列值作为列表的第一个元素,然后删除列v2。此外,我想将列v4:v5拆分为“:”, 保留第一个和第三个元素,并分别用“/”和“,”分开。

数据框应如下

v1  v3  v4  v5
1   E   NA  0
1   Z   1,3 1,7
1   D   NA  2,5
3   ZE  0   0
3   AB  NA  NA
3   CD  NA  2,8
3   FG  3,9 NA

我试过

  

concat.split.multiple(input,split.cols = c(“v4”,“v5”),seps =“:”,   direction =“wide”)

但是,如何选择列表的第一个和第三个元素并将它们拆分?

  

dput(输入)

structure(list(v1..v2..v3..v4..v5 = structure(1:2, .Label = c("1   E   Z,D 1:115:3:0.0 0/1/2:71:7,5:0.003,0.009", "3   ZE  AB,CD,FG    0/3:331:9:0.00588   0/2:235:8:0.04704"), class = "factor")), .Names = "v1..v2..v3..v4..v5", class = "data.frame", row.names = c(NA, -2L))

0 个答案:

没有答案