2013-07-24 44 views
0

我有这个数据帧:如何在R中矢量化数据帧?

aaa=read.table(text="variable value 
    X3CO  24.88994 
    X3CO  25.02366 
    X3CO  24.90309 
    X3CS  25.70630 
    X3CS  25.26748 
    X3CS  25.19539 
    X3CD  26.95723 
    X3CD  26.84726 
    X3CD  26.23144 
    X3CSD 36.95251 
    X3CSD 36.04091 
    X3CSD 36.90476 
    X5CO  25.44123 
    X5CO  24.97586 
    X5CO  24.86076 
    X5CS  25.71570 
    X5CS  26.10244 
    X5CS  25.39033 
    X5CD  27.67509 
    X5CD  27.18986 
    X5CD  26.93682 
    X5CSD 36.26529 
    X5CSD 34.88553 
    X5CSD 33.97910 
    X7CO  24.71426 
    X7CO  24.08444 
    X7CO  23.97058 
    X7CS  24.55734 
    X7CS  24.56562 
    X7CS  24.75898 
    X7CD  27.14260 
    X7CD  26.65704 
    X7CD  26.49533 
    X7CSD 33.89882 
    X7CSD 32.91092 
    X7CSD 32.79199 
    X9CO  26.86141 
    X9CO  26.42649 
    X9CO  25.83506 
    X9CS  28.17368 
    X9CS  27.27401 
    X9CS  26.58814 
    X9CD  28.88915 
    X9CD  28.32598 
    X9CD  28.27136 
    X9CSD 34.61352 
    X9CSD 35.84190 
    X9CSD 35.80329",header=TRUE) 

你知道,如果有这个矢量化数据框到使用“变量”的水平向量的方法吗?因为它已经分组(如果没有一定排序)由variable

aaa$value 

这个过程就相当于手动这样做:

c(c(24.88994,25.02366,24.90309), c(25.70630,25.26748,25.19539),...)) 
corresponding to 
c(c(X3CO,X3CO,X3CO),c(X3CS,X3CS,X3CS),...)) 
+0

'集合体(值〜变量,AAA,as.vector,简化= FALSE)'?这会在你的“值”列中创建一个向量列表。或者,'可能(?aaa,split(value,variable))'?我不太了解你的问题。你能描述你的最终目标吗? – A5C1D2H2I1M1N2O1R2T1

回答

1

可以使用split()函数来创建每个只包含一个电平数据帧的列表,然后提取从该列表中的载体:

aaa.sp <- split(aaa, aaa$variable) 
aaa.sp[[1]]$variable 
aaa.sp[[1]]$value 
+0

优秀,这就是我需要! – Wicelo

1

了给定的数据帧。

对于数据帧是不是已经在组:

aaa[order(aaa$variable), "value"] 
+0

好吧,但如何使个人向量使用变量水平(3values每向量) – Wicelo