0

wilcox.test(·)Rで使用して分析するデータフレームの列にすべての数値を渡そうとしています.

渡すc(1,2,3)と問題なく動作しますが、既存のデータベースの列を完全に入力せずに関数に渡したいです。(約 200 万行あります)

列を渡すとエラーが発生します:('x' must be numeric. 当然のことです)

サンプルデータ:

    AA      AC       AD          AE         AF
 0.6047619  NA  -1.0000000   1.0059524  -1.000000
-0.2348790  NA   0.5812500   0.1294643  -1.000000
 0.9523810  -1  -1.0000000  -1.0000000  -1.000000

使用されたステートメント:

{print(wilcox.test(list, y = NULL, correct = TRUE, mu = 0, exact = NULL))}

エラーメッセージ :

    Error in wilcox.test.default(list, y = NULL, correct = TRUE, mu = 0, exact = NULL) : 
  'x' must be numeric

リストはデータフレームの 1 つの列です。AA から 0.9523810 まで。

4

2 に答える 2

1

がデータ フレームの場合list、次の方法で各列の結果を取得できます。

apply(list,2,wilcox.test, y = NULL, correct = TRUE, mu = 0, exact = NULL)

列の 1 つが数値変数ではないため、エラーが発生しています。

于 2013-06-04T14:21:03.787 に答える
1

という名前のデータ フレームで特定の列を指定するdfには、次のいずれかを使用できます。

df[1, ]     # by number: first column
df["x1", ]  # by name: column that is named "x1"
df$x1       # also by name

したがって、この場合は、(「AA」という名前の列が必要な場合) を使用します。

wilcox.test(df$AA, y=NULL, correct=TRUE, mu=0, exact=NULL)
于 2013-06-04T14:27:01.573 に答える