我需要通过循环将因子split
"1"
转换为几个新的df。问题,因子由数字组成,新的df称为"2"
new_df_1
,依此类推,因此很难为下一段代码调用它们,...我能提供任何帮助重命名新的df。像new_df_2
,new_df<- split(df, df$cluster)
new_names <- as.character(unique(df$cluster))
for (i in 1:length(new_df))
{assign(new_names[i],new_df[[i]])}
一样?
我到目前为止有什么:
lapply
我也尝试了new_df<- split(df, df$cluster)
lapply(names(new_df),function(nm)
write.csv(new_df[[nm]],paste("new_df",nm,".csv")))
,但是只能保存,而不能在Global Environment中创建df,因为我实际上不需要保存它供以后使用。
new_df 1.csv
它可以工作,但是可以创建一个文件:{{1}}
谢谢您的任何建议!
答案 0 :(得分:1)
如果我们在全局环境中需要对象,请使用list2env
names(new_df) <- paste(new_df, seq_along(new_df), sep="_")
list2env(new_df, envir = .GlobalEnv)
注意:不建议创建多个全局对象。而是可以将其全部处理为list
('new_df')
或使用assign
nm1 <- names(new_df) # after creating the names with `paste`
for (nm in nm1) {
assign(nm,new_df[[i]])
}
答案 1 :(得分:0)
cluster_list <- split(df, f = df$clust)
构建集群列表,使用lapply
来操纵列表。