2015-05-19 9 views
6

3D diziler okuyun:Yaz ve ben (gösterilmesini görünmüyor adlar rağmen) olarak inşa Ar 3D dizi var R

v.arr <- array(1:18, c(2,3,3), dimnames = c("A", "B", "X", 
          "Y","Z","P","Q","R")) 

ve ekrana yazdırıldığında bunun gibi yukarda gösterir :

write.table(v.arr, file = “Test Data”) 

sonra birlikte geri okumak:

, , 1 

    [,1] [,2] [,3] 
[1,] 1 3 5 
[2,] 2 4 6 

, , 2 

    [,1] [,2] [,3] 
[1,] 7 9 11 
[2,] 8 10 12 

, , 3 

    [,1] [,2] [,3] 
[1,] 13 15 17 
[2,] 14 16 18 

ben kullanarak bir dosyaya yazmak

Ben 3D dizi geri almak için salt arkasında yazılı veya yeniden yapılandırılması bunu önce dosyayı yapılandırmaya ya bir şeyler yapmak gerek, Açıkçası

X1 X2 X3 X4 X5 X6 X7 X8 X9 
1 1 3 5 7 9 11 13 15 17 
2 2 4 6 8 10 12 14 16 18 

:

test.data <- read.table(“Test Data”) 

ve bana böyle. Okumadan elde ettiğim verileri her zaman yeniden yapılandırabilirim. Bu en iyi yaklaşım mı? Şimdiden teşekkürler.

+2

Bu verileri R'de kullanmak mı yoksa başka bir yazılımla mı okumak istiyorsunuz? Eğer sadece R ile, neden sadece “save” (ve 'load') komutlarıyla .rda (RData) formatını kullanmıyoruz ..? – Tim

+0

Dizilim yapımındaki dimnames argümanının amacı nedir? Göz ardı ediliyor gibi görünüyor. Herhangi bir etkisi olması için üç girişli bir liste olması gerektiğini düşünüyorum ... – gvrocha

+0

dimnames, dizinin boyutlarına adlar atayacak, ancak isim vektörüne "list" eklemem gerekiyordu. Bir hata oluşursa göz ardı edilecektir. Evet, aşağıda RData formatını kullandığımı öneren yanıt iyi bir çözümdür. Verileri vermem gerekirse, geldiğimde köprüyü geçeceğim. Teşekkürler, herkes yorum için. – Ernie

cevap

5

Sorununuz, bunu yapmak için write.table kullanıyor olmanızdır, bu yüzden dizinizi bir tabloya zorlamak (inanıyorum). Kaydetmek istiyorsanız ve R'ye özgü bir biçimde olacağını düşünmüyorsanız, save ve load işlevlerini kolayca kullanabilirsiniz.

save(v.arr,file = "~/Desktop/v.arr.RData") 
rm(list=ls()) 

load("~/Desktop/v.arr.RData") 
v.arr 
+0

Evet, bu dahili ara verilerdir ve bu mükemmel bir çözümdür. Şu anda dışa aktarma gereği duyma. Teşekkürler!! – Ernie

+0

Bu bakımdan doğru şekilde kısaltmalar kullanılmalıdır: kısaltmalar = liste (c ("A", "B"), c ("X", "Y", "Z"), c ("P", ") Q "," R "))) – Ernie

+0

Muhtemelen bu soruya dayanmak istendi mi? – TARehman