0

このような入力ファイルがあります

V1 V2 V3 V4.............V60 
11 22 33 44.............89 
21 98 22 33.............09 
33 44 55 78.............20

上記のファイルには、各行に 60 列の 3000 を超える行があります。

rプロンプトで使用しようとするdensity(data, kernel="gaussian", bw=15)と、次のエラーが生成されます

Error in density.default(data) : argument 'x' must be numeric

しかし、試してみるとdensity(data$V1, kernel="gaussian", bw=15)、うまくいきます。

単一の列ごとに60回実行するのではなく、ファイル全体の密度を計算する単一のコマンドがあるかどうか疑問に思っていました。

4

2 に答える 2

1

sapplyまたはを探している可能性がありますapply
あなたが使用することができます

 apply(myDataName,  2,  density, kernel="gaussian", bw=15)

列がfactorではなく s の場合はnumeric、まずそれらを変換する必要があります。

于 2013-02-21T17:18:15.820 に答える
0

ほとんどの場合、オブジェクトはデータ フレームです (これは、や などのdataツールを使用してデータを読み取る場合のデフォルトです)。 read.tableread.csv

各列を処理する (列ごとに個別の密度プロットを作成する) 場合は、lapply関数を使用できます。

すべてのデータに基づいて 1 つの密度が必要な場合 (列は何の意味もありません)、unlist関数を使用してすべてを 1 つの大きなベクトルに変換できます。データをベクトルにロードしてデータ フレームをすべてスキップするscan代わりに、関数を使用する方がよい場合があります。read.table

于 2013-02-21T17:20:41.253 に答える