データフレームを見て、最小の1つの列で新しいデータフレームを作成し、係数で分割するコードを記述しました。しかし、私は結果に他の列を組み込む方法を理解することができません(要因として使用することはありません)。aggregate()に追加の列を追加する
たとえば、次のコードでは、 "State"、 "Institution"、 "Rating1"、 "Rating2"、および "Junkdata"という列のデータフレームを作成します。次に、リストされた各状態について、評価1の最小値を求め、各状態ごとに最小値を持つデータフレームを作成します。しかし、私は "機関"の列を含めたいと言います。それ、どうやったら出来るの? 私もいくつかのプライヤーソリューションを使いましたが、サイコロはありませんでした。
「Institution」の列を指定せずに使用したコードはここにありますが、私はそれを私が成功することなく考えることができるあらゆる場所に置いてみてください。
##create the data frame
State <- c("AZ","AZ","AZ","CA","CA","CA","CA","CA","NY","NY","NY","NY","SD","SD")
Institution <- c("Institution 1","Institution 2","Institution 3","Institution 4","Institution 5","Institution 6","Institution 7","Institution 8","Institution 9","Institution 10","Institution 11","Institution 12","Institution 13","Institution 14")
Rating1 <- c(3.4, 5.6,2.2,6.3,8.3,2.1,3.3,9.7,7.7,5.4,9.9,3.2,6.1,5.2)
Rating2 <- c(8.4,3.4,6.5,2.5,7.5,4.2,5.6,8.3,4.9,3.3,1.1,8,7.7,3.3)
Junkdata <- c("junk","more junk","superfluous","junk","more junk","superfluous","junk","more junk","superfluous","junk","more junk","superfluous","junk","more junk")
data.df <- data.frame(State, Institution, Rating1, Rating2, Junkdata)
## Use aggregate to find the minimum of Rating 1 for each State
new.df <- aggregate(data.df$Rating1 ~ State, data.df, min)
使用plyr:
library(plyr)
new.df.2 <- ddply(new.df, .(State), summarise, min=min(data.df$Rating1))
私はあなたが間違ったツールを使用していると思いますが(S) data.df [!! ave(data.df $ Rating1、data.df $ State、FUN = function(x)x == min(x))、1:3] '、' aggregate 'と' summarize'はデータの部分集合に対して計算を実行します。フィルタリングや集計/集計を行う場合でも、「min」は変更されないため、結果が同じであることは少し混乱します – rawr
これも機能します!私は本当に二重の感嘆符が何をしているのか理解していない。平均、和などの使用に関しては、私がやろうとしていることの中では意味がありません。 – Thoughtcraft
私が使った 'ave'は' c(0、1、0) 'などを返し、' !! c(0、1、0) 'はそれを単に論理値に変換します。またはas.logical(c(0、1、0))と等価ですが、もう一方の方が高速です。私は@akrunから取得しました – rawr