1
假設我有一個包含7個變量的數據框。我想根據一列的內容自動對數據框進行子集分類。該列是Department,有17個不同的值。我希望R查看「Dept」列,併爲包含所有其他行的每個Dept創建一個新的數據框。這與Minitab中的「拆分工作表」相當。現在,我必須運行子集命令17次爲每個創建一個數據幀。 R可以根據列內容自動執行此操作嗎?字符串子集數據框
非常感謝!
假設我有一個包含7個變量的數據框。我想根據一列的內容自動對數據框進行子集分類。該列是Department,有17個不同的值。我希望R查看「Dept」列,併爲包含所有其他行的每個Dept創建一個新的數據框。這與Minitab中的「拆分工作表」相當。現在,我必須運行子集命令17次爲每個創建一個數據幀。 R可以根據列內容自動執行此操作嗎?字符串子集數據框
非常感謝!
out<-split(df,df$Dept)
out[[1]]
#等訪問dataframes
或
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
有一個樣本? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Thell 2012-08-15 20:14:29
是的,這將做的伎倆,但它輸出到控制檯,而不是放置在其每個部門的數據自己的數據框(最好由部門命名) – 2012-08-15 20:20:24
它列出了可以像你一樣分配的'data.frames'。 R幾乎從不改變你下面的數據,而是操縱它並返回它。默認返回值是stdout,但您可以使用'<或'=來分配一個新變量。 – Justin 2012-08-15 20:22:45