みなさん、こんにちは。私はRを初めて使用し、データフレームで特定の国の利益の中央値を計算しようとしています。1つ以下を試しましたが、うまくいきません。
data("Forbes2000", package = "HSAUR")
median(Forbes2000[,"sales","country"="United States"])
median(Forbes2000$sales[Forbes2000$country == "United States"])
データフレームがどのように見えるかを知らずに確認するのは難しいですが。1つだけではなく、すべての国の中央値を使用してdata.frameを取得する場合は、次のように実行できます。
library(plyr)
ddply(Forbes2000, "country", function(d) median(d$sales))
(たとえば、最初にplyrパッケージをインストールする必要がありますinstall.packages("plyr")
)。
David はすでにあなたの最初の質問に答えており、複数の国の中央値を見つける 1 つの方法を示しています。別の方法は次のとおりです。
国ごとに を作成して、国split
ごとにを作成できますdata.frame
list
data.frame
L <- split(Forbes2000, Forbes2000$country)
次に、またはlist
を使用して
、 の各コンポーネントに関数を適用できます。(結果を配列に単純化し
ますが、 を返します)lapply
sapply
sapply
lapply
list
sapply(L, function(x) {
median(x$sales)
})
または、1行で
sapply(split(Forbes2000, Forbes2000$country), function(x) median(x$sales))
次を使用して、データフレーム「outcome3」の米国の州ごとに、列11のメトリックの中央値を計算できました。
tapply(outcome3[,11], outcome3$State, median)