2013-07-24 83 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