假设我有一个包含 7 个变量的数据框。我想根据一列的内容自动对数据框进行子集化。该列是部门,有 17 个不同的值。我希望 R 查看“部门”列并为每个包含所有其他行的部门创建一个新数据框。这相当于 Minitab 中的“拆分工作表”。现在,我必须运行 17 次子集命令来为每个命令创建一个数据框。R 可以根据列内容自动执行此操作吗?
最好的,谢谢!
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