1

7 つの変数を持つデータ フレームがあるとします。1 つの列の内容に基づいてデータ フレームを自動的にサブセット化したい。列は部門で、17 の異なる値があります。R に "Dept" 列を見て、他のすべての行を含む各 Dept の新しいデータ フレームを作成してもらいたいと思います。これは、Minitab の「分割ワークシート」に相当します。今のところ、subset コマンドを 17 回実行して、それぞれのデータ フレームを作成する必要があります。R は列の内容に基づいてこれを自動的に行うことができますか?

ありがとう!

4

1 に答える 1

5
out<-split(df,df$Dept)

out[[1]]

# などでデータフレームにアクセス

また

out$Dept1

具体例を挙げる

df<-data.frame(Dept=c('a','a','b','b','c','d','d'),acs=c(111,112,222,223,333,444,445))
out<-split(df,df$Dept)
out
> out
$a
  Dept acs
1    a 111
2    a 112

$b
  Dept acs
3    b 222
4    b 223

$c
  Dept acs
5    c 333

$d
  Dept acs
6    d 444
7    d 445

dept.names<-names(out)

> dept.names[1]
[1] "a"

> out[[dept.names[1]]] # dataframe for department 1
  Dept acs
1    a 111
2    a 112

> out[[dept.names[2]]] # dataframe for department 2
  Dept acs
3    b 222
4    b 223


> is.data.frame(out[[dept.names[2]]])
[1] TRUE
于 2012-08-15T20:22:55.277 に答える