0

私には2つの変数があります:Xそしてstateそれらは以下に与えられます

set.seed(3)
state <- rbinom(15,4,0.6)
X <- c(1:15)
X
state

出力は

> state
 [1] 3 2 3 3 2 2 4 3 2 2 2 2 2 2 1
> X
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

X同じ状態に対応するを選択したい。Rでこれを行う方法はありますか?

4

2 に答える 2

4

を使用しsplitて、4つの状態のリストを取得します

ll <- split(X,state)
$`1`
[1] 15

$`2`
[1]  2  5  6  9 10 11 12 13 14

$`3`
[1] 1 3 4 8

$`4`
[1] 7

ll[3]
$`3`
[1] 1 3 4 8

通常、aveグループ化中にいくつかの操作を実行するために、を使用します。

たとえば、ここでは、状態ごとのXの平均を取得します。

ave(X,state,FUN = mean)
 [1]  4.000000  9.111111  4.000000  4.000000  9.111111  9.111111  7.000000  4.000000  9.111111  9.111111  9.111111  9.111111  9.111111  9.111111 15.000000
于 2013-01-18T10:53:43.057 に答える
0

別の方法は、データフレームに変数を配置し、そこから変数を選択することです。

> df <- data.frame(x = X, state = state)
> df
    x state
1   1     3
2   2     2
3   3     3
4   4     3
5   5     2
6   6     2
7   7     4
8   8     3
9   9     2
10 10     2
11 11     2
12 12     2
13 13     2
14 14     2
15 15     1
> df[df$state == 3,]
  x state
1 1     3
3 3     3
4 4     3
8 8     3
于 2013-01-18T10:59:28.780 に答える