2016-11-07 10 views
-1

良い時間 が動作しない、私はsummary()が正しくdata.frame では動作しませんなぜ私は非常に大きなデータテーブルを持って見ることができません2595x20は、それをこのように読んで:colMeansと概要は、私は初心者だと私はR. ファーストを理解してprobplemsを持って

table=read.table('data.txt') 
statData <- data.frame(k1=table$V1[2:dim(table)[1]],  
         k2=table$V2[2:dim(table)[1]], 
         k3=table$V3[2:dim(table)[1]], 
         k4=table$V4[2:dim(table)[1]], 
         k5=table$V5[2:dim(table)[1]], 
         k6=table$V6[2:dim(table)[1]], 
         k7=table$V7[2:dim(table)[1]], 
         k8=table$V8[2:dim(table)[1]], 
         k9=table$V9[2:dim(table)[1]], 
         k10=table$V10[2:dim(table)[1]], 
         k11=table$V11[2:dim(table)[1]], 
         k12=table$V12[2:dim(table)[1]], 
         k13=table$V13[2:dim(table)[1]], 
         k14=table$V14[2:dim(table)[1]], 
         k15=table$V15[2:dim(table)[1]], 
         k16=table$V16[2:dim(table)[1]], 
         k17=table$V17[2:dim(table)[1]], 
         k18=table$V18[2:dim(table)[1]], 
         k19=table$V19[2:dim(table)[1]], 
         k20=table$V20[2:dim(table)[1]]) 
attach(statData) 

をして、次の要約をしている使用して:私には意味がありません

> summary(statData) 
      k1     k2     k3     k4  
2   : 3 0   : 9 0.419540527: 2 -0.092111263: 2 
1.035054208: 2 0.000957854: 2 0.445687651: 2 -0.15798793 : 2 
1.159481195: 2 0.004444444: 2 0.00982686 : 1 0   : 2 
3.32231405 : 2 0.024900398: 2 0.041484213: 1 0.049426895 : 2 
0.248322148: 1 0.029172089: 2 0.045053272: 1 0.699004975 : 2 
0.284853052: 1 0.037267081: 2 0.046308725: 1 -0.002051282: 1 
(Other) :2584 (Other) :2576 (Other) :2587 (Other)  :2584 

を。

colMeansエラーaccures:

> colMeans(statData) 
Error in colMeans(statData) : 'x' must be numeric 

を私のデータは間違いなく数値です。 私が理解したように、k1〜k20が要因であるからです。さて、私はas.numeric(levels(k1)[k1])でそれらを変換しようとすると、私が推測するかもしれない別のデータがあります。 これらの関数を正しく動作させるにはどうすればよいでしょうか?テーブルの読み込みや変換などの方法が変わっているのでしょうか?

+0

は、すべての場合を見つけるために '' STR(statData) 'や' sapply(statData、クラス)を確認しないことができます列は数値です – akrun

+0

ええ、数値ではありません、私はそれを書いています 'data.frame':\t 2595 obs。 20変数: $ k1:ファクタw/2591レベル "0.248322148"、..:405 1808 12 2567 1652 2404 274 2398 1929 863 ... $ k2:ファクタw/2582レベル "0"、 "0.000133032" ..:1353 2081 71 2414 248 2500 341 2486 1664 1379 ... $ k3:2594レベルの "0.00982686"、 "0.041484213"、..:1611 1938 40 2477 1907 2465 242 2372 1720 928 ... – 8txra

+0

さて、 '数値 'ではないいくつかの' factor'クラスの列があります。それを '数値 'に変換します。つまり、' i1 < - sapply(statData、is.factor);統計データ[i1] < - lapply(statData [i1]、function(x)as.numeric(as.character(x))) ' – akrun

答えて

0

我々は、factor列のインデックスを作成numericclassを変更し、colMeans

i1 <- sapply(statData, is.factor) 
statData[i1] <- lapply(statData[i1], function(x) as.numeric(as.character(x))) 
colMeans(statData) 
関連する問題