1

すべてのセルに「データがない」場合にRに値を計算させる引数summary(または別のコマンド)がありますか?

私のアンケートでは、被験者はすべての情報を提供していませんでした。と私が入力したそれらのセルのために-nodata-。回答が当てはまらないセルについては (q の前の質問に基づいて) と入力し-1ました。は次のsummaryようになります。

> summary(qs$ESC) 
      -1 -nodata-      0.5        1       12       15        3 
      49        3        1        1        1        1        1 

私が欲しいのは計算された要約です。Rに無視するように指示する方法は-nodata-あり-1ますか?

4

2 に答える 2

3

どのような要約を計算したいのかよくわかりません。

summary「-nodata-」および「-1」コードの代わりに NA を使用すると、関数の使用時にそれらが自動的に考慮されます。

例えば ​​:

R> v <- c(NA, NA, 0.5, 1, 12, 15, 3)
R> summary(v)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
    0.5     1.0     3.0     6.3    12.0    15.0     2.0 
R> table(v)
v
0.5   1   3  12  15 
  1   1   1   1   1 

vここには文字列値がないため、数値と見なされていることがわかります。「-nodata-」値を導入すると、文字または因子変数として扱われます。

exclude関数の引数を使用して、table一部の値を自動的に無視することもできます。

R> v <- c(-1, "-nodata-", 0.5, 1, 12, 15, 3)
R> table(v)
v
     0.5        1       -1       12       15        3 -nodata- 
       1        1        1        1        1        1        1 
R> table(v, exclude=c(-1, "-nodata-"))
v
0.5   1  12  15   3 
  1   1   1   1   1 
于 2011-02-23T22:12:47.753 に答える
1

列が要因である可能性が非常に高くESC、列のデータ型と文字が必要であると推測される場合、read.tableからのdata.frameのデフォルトです。おそらく、read.tableへの元の呼び出しに引数を追加する必要がありますstringsAsFactors=FALSE。これにより、列がテキストとして提供され、「-nodata-」値がNAに変換されてから、数値に変換されます。

read.tableにはna.strings引数もあり、na.strings = "-nodata-"これらを自動的にNAに置き換えるように設定できます。

最後に、既存のdata.frameから推測し、nodata値を置き換えて、数値に変換します。

qs$ESC[qs$ESC == "-nodata-"] <- NA
summary(as.numeric(levels(qs$ESC))[qs$ESC]

ファクターのレベルでのインデックス付けは?factorによって推奨されていますが、データが読み取られた場所、またはその他の方法で生成された場所に戻って、

于 2011-02-23T22:30:52.837 に答える