0

みなさん、こんにちは。私はRを初めて使用し、データフレームで特定の国の利益の中央値を計算しようとしています。1つ以下を試しましたが、うまくいきません。

data("Forbes2000", package = "HSAUR")
median(Forbes2000[,"sales","country"="United States"])
4

3 に答える 3

5
median(Forbes2000$sales[Forbes2000$country == "United States"])

データフレームがどのように見えるかを知らずに確認するのは難しいですが。1つだけではなく、すべての国の中央値を使用してdata.frameを取得する場合は、次のように実行できます。

library(plyr)
ddply(Forbes2000, "country", function(d) median(d$sales))

(たとえば、最初にplyrパッケージをインストールする必要がありますinstall.packages("plyr"))。

于 2012-08-29T19:41:32.633 に答える
2

David はすでにあなたの最初の質問に答えており、複数の国の中央値を見つける 1 つの方法を示しています。別の方法は次のとおりです。

国ごとに を作成して、国splitごとにを作成できますdata.framelistdata.frame

L <- split(Forbes2000, Forbes2000$country)

次に、またはlistを使用して 、 の各コンポーネントに関数を適用できます。(結果を配列に単純化し ますが、 を返します)lapplysapplysapplylapplylist

sapply(L, function(x) {
    median(x$sales)
})

または、1行で

sapply(split(Forbes2000, Forbes2000$country), function(x) median(x$sales))
于 2012-08-30T00:07:39.383 に答える
0

次を使用して、データフレーム「outcome3」の米国の州ごとに、列11のメトリックの中央値を計算できました。

tapply(outcome3[,11], outcome3$State, median)

于 2014-01-23T16:12:33.330 に答える