我使用以下格式的数据框df:
Variable X Y
Var1 1,2,3 .2,.3,.4
Var2 2,3,4 .2,.1,.4
Var3 2,2,1 .1,.2,.4
如果我这样做
DF $ X [1]
它会给我以下输出:
2,3,4
我想提取上面列表中的每个元素。也就是说,我想提取2,然后是3,最后是4.
我想为每个Var [i]和X以及Y.
执行此操作我试图只为1个单元格做这个:
(df$Var1[1])[1]
所以我只得到1。但它给了我" 1,2,3"。
答案 0 :(得分:1)
我们可以将cSplit
与melt
data.table
一起使用
library(splitstackshape)
melt(cSplit(df1, 2:3, ","), measure=patterns("^X", "^Y"),
value.name=c("X", "Y"), variable.name="time")[order(Variable)]
# Variable time X Y
#1: Var1 1 1 0.2
#2: Var1 2 2 0.3
#3: Var1 3 3 0.4
#4: Var2 1 2 0.2
#5: Var2 2 3 0.1
#6: Var2 3 4 0.4
#7: Var3 1 2 0.1
#8: Var3 2 2 0.2
#9: Var3 3 1 0.4