2011-05-23 24 views
28

R (m) değişken sütun sayısı (örneğin 30) ve 2 satır içeren bir data.frame oluşturmak istiyorum. data.frame, başlangıçta 0'larla. Data.frame değerleri sütunlara değil, satırlara göre doldurur gibi görünüyor, herhangi bir öneri nasıl yapabilirim? Teşekkürler :)m sütunları ve 2 satırlı bir data.frame oluşturun

cevap

47

m'un gerçekten bir data.frame() olması mı yoksa bir matrix() yeterli mi?

m <- matrix(0, ncol = 30, nrow = 2) 
eğer gerekiyorsa Bunun etrafında bir data.frame() sarabilirsiniz

:

m <- data.frame(m) 

veya tümü bir satırda: m <- data.frame(matrix(0, ncol = 30, nrow = 2)) Bütünlüğü için

+0

Ve tam olarak _I_ yazacaktı. +1;) Benim tek eklemem açıkça belirtmek gerekirse, 'data.frame()' tipik olarak sütuna göre etiketini = değer argümanları ile belirtir. – joran

26

: Chase'in cevabın doğrultuda

Ben genellikle matrisi bir data.frame için zorlamak için as.data.frame kullanıyorum:

m <- as.data.frame(matrix(0, ncol = 30, nrow = 2))

DÜZENLEME: as.data.frame

system.time(replicate(10000, data.frame(matrix(0, ncol = 30, nrow = 2)))) 
    user system elapsed 
    8.005 0.108 8.165 

system.time(replicate(10000, as.data.frame(matrix(0, ncol = 30, nrow = 2)))) 
    user system elapsed 
    3.759 0.048 3.802 

Evet, daha hızlı (yaklaşık 2 kat) görünmektedir speed test data.frame vs.

+0

Cevabınız hakkında farklı olan nedir? daha hızlı mı? –

+0

@Eduardo biraz daha hızlı görünüyor - yukarıya bakın. – Greg