2015-06-21 22 views
5

Çok sayıda stok verisi var ancak garip bir şekilde bunları faydalı olabilecek çıktıya nasıl dönüştüreceğimi gösteren bir örnek bulamadım. İşte verilereSatırları ortak bir ad temelinde bire dönüştürün

stockname,value,prediction 
Yahoo,32,12 
Yahoo,21,12 
Yahoo,30,10 
Yahoo,56,19 
Google,32,10 
Google,22,30 

snippet'idir Sen data.table yani devel sürümünden dcast deneyebilirsiniz

stockname value1 value2 value3 value4 prediction1 prediction2 prediction3 prediction4 
Yahoo  32  21  30  56  12   12   10   19 
Google  32  22     10   10 

cevap

4

gibi kolay bir şey bu dataframe dönüştürmek mümkün o mi olduğunu. Birden çok value.var sütunu alabilen v1.9.5+. geliştirme sürümünü kurmanız Talimatlar Bu "geniş" den "uzun" veri yeniden şekillendirilmesi basit bir sorundur here

library(data.table)#v1.9.5+ 
setDT(df1)[, indx:=1:.N, stockname]#create a sequence index by stockname 
dcast(df1, stockname~indx, value.var=c('value', 'prediction')) 
# stockname value_1 value_2 value_3 value_4 prediction_1 prediction_2 
#1: Google  32  22  NA  NA   10   30 
#2:  Yahoo  32  21  30  56   12   12 
# prediction_3 prediction_4 
#1:   NA   NA 
#2:   10   19 
+0

Maalesef şu ana kadar ben version # v1.9.5 yükleyebilir + belki ilk Github yüklemek zorunda: Burada reshape kullanarak bir baz R çözüm bu mu? – Ster32

+0

@ Stef32 Önce kütüphaneye (devtools) ihtiyacınız var – akrun

+0

Evet Yaptım. Kurdu. Sadece R araçlarını yüklemek için bir uyarı veriyor ama ben yapmadım. – Ster32

5

bulunmaktadır.

# load data 
d <- read.csv(text="stockname,value,prediction 
Yahoo,32,12 
Yahoo,21,12 
Yahoo,30,10 
Yahoo,56,19 
Google,32,10 
Google,22,30", header = TRUE) 

# create a time indicator variable 
d$t <- c(1:4, 1:2) 
# reshape 
reshape(d, idvar="stockname", direction="wide", timevar = "t") 
# stockname value.1 prediction.1 value.2 prediction.2 value.3 prediction.3 value.4 prediction.4 
# 1  Yahoo  32   12  21   12  30   10  56   19 
# 5 Google  32   10  22   30  NA   NA  NA   NA 
+0

anlayabildiğim gibi d $ t 4 değer ve 2 sonuçta iki satır var. Bahsettiğim gibi bu veri kümesindeki bir örnek, yeni satırların ve sütunların özgül numunu bilmiyorum. – Ster32

+0

@ Ster32 Aslında hiçbir yerden bahsetmedin. – Thomas

İlgili konular