1

このトピックに関するいくつかの質問/回答を見つけましたが、問題を解決できませんでした...なので、私のやり方で質問します。明らかな場合は申し訳ありません。

ggplot2 で使用するデータフレーム (z2) を用意しました。このデータフレームには、実数を含む列「値」、テストされたパラメーターを識別する列「名前」、各個人の一意の ID である列「loghos」、および結果変数である列「statut」が含まれています。

次のコードを使用して、各「名前」の「ステータス」に従って「値」を簡単にプロットできました。

pt <- ggplot(z2, aes(y = value, x = statut))
pt + geom_boxplot(aes(colour=statut)) + facet_wrap(~name, scales="free_y")

データフレームでは、各「ロゴ」(さまざまな時点でのいくつかのサンプル)の各「名前」の値を繰り返しました。

各「名前」と各「患者」の最小値のみをプロットしたいと思います。だから私はこれに plyr を使おうとしました、そして私は書きました:

x = ddply(z2, .(loghos,name), function(x) return(min(x,na.rm=T)))

しかし、私はこのエラーメッセージを受け取りました。

Erreur dans FUN(X[[1L]], ...) : 
  only defined on a data frame with all numeric variables

大したことではないと思いますが、 i を正しく書く方法が見つかりません!

前もって感謝します、

ジュリアン

編集済み:data.frameのサンプルを以下に示します

y = z2[sample(nrow(z2),20),c(1,2,3,9,11,12,13)]
y
      cleBilan   name  value   loghos sexe age    statut
80612   328347   plaq 384.00 31218139    M  21 transfert
36304   363835     gb   5.62 41416171    M  72   service
59346   267744 lympho   9.90 30628552    F  22   service
62746   388270 lympho   8.70 41620223    M  78   service
81046   342228   plaq 185.00 41120284    M  19   service
67400   323055   mono   3.10 31273421    F  45   service
35572   335928     gb  16.16 41178061    F  22 transfert
71136   256960 neutro  10.65 30401746    M  71 transfert
34324   293368     gb  16.20 30894579    F  30   service
69010   383939   mono   6.90 41574890    M  22   service
63665   236360   mono   4.40 29970714    M  71   service
31366   233999     gb   7.20 29959612    F  18   service
60867   317932 lympho  12.00 31229099    M  50   service
74487   355581 neutro  10.68 41154330    F  23   service
65520   265864   mono   7.00 30583193    M  78   service
36553   375590     gb   7.10 41489078    M  61   service
65849   268730   mono   3.90 30652360    M  89     deces
80813   354964   plaq 404.00 41120284    M  19   service
31271   232524     gb   6.30 29934806    M  36   service
72789   291335 neutro  11.00 30923095    F  35   service
4

1 に答える 1

1

コメントからの回答の要約:

baptiste のコメントによると、「ddplyデータを小さなブロックに分割します。入力としてブロック (data.frame) を受け取り、data.frame を返す関数を提供する必要があります。これsummariseはそのような関数の 1 つですが、minそれ自体はそうではありません」 .

最初のdata.frameを減らすために、正しいコードは次のとおりです。

x = ddply(z2, .(loghos, name, statut), summarise, value = min(value,na.rm=T))

この関数では、 loghos x` data.frame が出力変数であるためloghosnameとのみvalueが使用されます。statut is unique for each. I added it to the list to keep its value in the

于 2012-12-21T06:10:22.713 に答える