例如说我有一些数据框DF。
DF有一列称为“目标”的列,它由因子变量目标名称组成,例如“ A”,“ B”,“ C”等。为简单起见,假设它只有这三个。
我想定义三个新的数据框,
例如,如果我这样做
for(i in levels(DF$Target)){
Dat.i=Dat%>%
filter(Target==i)
}
它将运行3次,但最终结果仍将是单个数据帧Dat.i,目标为C。
我希望有三个新的数据帧,分别称为Dat.A,Dat.B和Dat.C,分别对应于特定目标。 不是 Dat.i。
这怎么办?
答案 0 :(得分:1)
并不是您想要的,但我认为做到这一点的最佳方法是使用列表
Dat <- list()
for(i in levels(DF$Target)){
Dat[[i]] <- Dat%>%
filter(Target==i)
}
然后,您可以执行Dat[["A"]]
,Dat[["B"]]
...
如果确实要创建名为Dat.A,Dat.B等的不同对象,则可以使用
Dat <- list()
for(i in levels(DF$Target)){
assign(paste0('Dat.',i), Dat%>%
filter(Target==i))
}