我的数据是这样的(例如):
ID Rate State
1 24 AL
2 35 MN
3 46 FL
4 34 AL
5 78 MN
6 99 FL
Run Code Online (Sandbox Code Playgroud)
数据:
structure(list(ID = 1:6, Rate = c(24L, 35L, 46L, 34L, 78L, 99L),
State = structure(c(1L, 3L, 2L, 1L, 3L, 2L),
.Label = c("AL","FL", "MN"),
class = "factor")),
.Names = c("ID", "Rate", "State"),
class = "data.frame", row.names = c(NA, -6L))
Run Code Online (Sandbox Code Playgroud)
我想按状态拆分数据,我想得到3个数据集,如下所示:
data set 1
ID Rate State
1 24 AL
4 34 AL
data set 2
ID Rate State
2 35 MN
5 78 MN
data set 3
ID Rate State
3 46 FL
6 99 FL
Run Code Online (Sandbox Code Playgroud)
我应该使用什么功能?
我正在考虑拆分或子集功能,但仍然没有任何线索.
Sim*_*lon 51
我们可以使用split:
mylist <- split(df, df$State)
mylist
$AL
ID Rate State
1 1 24 AL
4 4 34 AL
$FL
ID Rate State
3 3 46 FL
6 6 99 FL
$MN
ID Rate State
2 2 35 MN
5 5 78 MN
Run Code Online (Sandbox Code Playgroud)
要访问元素编号:
mylist[[1]]
Run Code Online (Sandbox Code Playgroud)
或按名称:
mylist$AL
ID Rate State
1 1 24 AL
4 4 34 AL
Run Code Online (Sandbox Code Playgroud)
?split描述
split将矢量x中的数据划分为f定义的组.替换形式替换对应于这种划分的值.unsplit逆转了分裂的效果.