2017-05-23 6 views
3

Rコードの下にベクトルの組み合わせの例を示し、その後にベクトル "c"の属性が文字に変更されました。それはまだ数値として属性を保持する方法?ベクトルを行列に結合した後、元の属性を保持する方法(変更しない)

として以下の結果を実行している
a='aa';b='bb';c=c(1,2,3,4,5) 
dd=data.table(cbind(a,b,c));dd;class(dd);class(a);class(b);typeof(dd$c) 

> a='aa';b='bb';c=c(1,2,3,4,5) 
> dd=data.table(cbind(a,b,c));dd;class(dd);class(a);class(b);typeof(dd$c) 
    a b c 
1: aa bb 1 
2: aa bb 2 
3: aa bb 3 
4: aa bb 4 
5: aa bb 5 
[1] "data.table" "data.frame" 
[1] "character" 
[1] "character" 
[1] "character" 

は、typeof演算(DDます$ c)参照は、任意のより多くの "文字" 数値ではないに変更されました。元の属性を保持する方法は? cbindは、単一のクラスを保持することができmatrixmatrixに変換されるため

答えて

4

理由があります。単一のcharacter要素がある場合は、行列全体をcharacterに変換します。それが良いです

data.table(a, b, c) 
関連する問題