2012-12-10 16 views
5

R ürününde bigmemory paketini kullanmaya çalışıyorum ve en başında takılıyorum. Yapmam:R :: bigmemory - karakter big.matrix nasıl oluşturulur?

temp <- matrix(paste("a",1:10), 5, 2) 

ve karakter matrisi olsun. Bu iyi.

x <- as.big.matrix(temp, type="char") 

ve NA'nın dolu bir matris ve şu mesajı alıyorum: Ama sonra deneyin

Assignment will down cast from double to char 
Hint: To remove this warning type: options(bigmemory.typecast.warning=FALSE) 
Warning messages: 
1: In as.big.matrix(temp, type = "char") : Casting to numeric type 
2: In matrix(as.numeric(x), nrow = nrow(x), dimnames = dimnames(x)) : 
NAs introduced by coercion 
3: In SetElements.bm(x, i, j, value) : 

Ben neler olduğunu emin değilim ama tüm dönüştürmek çalışır big.matrix görünüyor metinlerime type = "char" numarasına rağmen. Nasıl çalıştırılır?

cevap

6

Bu bir yanlış addan oluşur - big.matrix nesneleri yalnızca sayısal veri türlerini depolar. 'Char' türü, ASCII karakter kodlarını (tek karakter, bir karakter dizisi değil) temsil eden tamsayı değerlerini depolamak için kullanılan bir C++ veri türüdür. Karakter dizelerini big.matrix'te saklamak için dizeleri sayısal değerler olarak yeniden kodlamanız (veya faktörlere, sonra sayısal değerlere dönüştürmeniz gerekir).

Karakter verilerini çok büyük bir veri kümesinde saklamanız gerekiyorsa, 'ff' paketine bakmak isteyebilirsiniz. Benim tecrübemde dik bir öğrenme eğrisi var ve belgeler biraz eksik, ancak bu işlevselliğe sahip.

büyük veri setleri ile uğraşan ilgili daha ayrıntılı bilgi için buraya CRAN Görev View'larını kontrol edebilirsiniz:

+0