首页 > 解决方案 > 按因子拆分数据帧并按因子命名新的df和附加描述,如“new_dataframe(因子)”

问题描述

我需要split通过循环将我的 df 转换为几个新的 df。问题,该因子由数字组成,并且调用了新的df"1" "2"等等,这使得很难为下一段代码调用它们,...任何帮助我如何重命名/命名新的df's。像new_df_1new_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,但只能保存,而不是在全球环境中制作 df,因为我实际上不需要保存它以备后用。

new_df<- split(df, df$cluster)
lapply(names(new_df),function(nm)
write.csv(new_df[[nm]],paste("new_df",nm,".csv")))

它可以工作,但会生成一个文件:new_df 1.csv

感谢您的任何建议!

标签: rdataframesplitlapplynames

解决方案


If we need objects in the global environment, use list2env

names(new_df) <- paste(new_df, seq_along(new_df), sep="_")
list2env(new_df, envir = .GlobalEnv)

NOTE: Not recommended to create multiple global objects. Instead, it can be all processed as a list ('new_df')


Or using assign

nm1 <- names(new_df) # after creating the names with `paste`
for (nm in nm1) {
      assign(nm,new_df[[i]])
 }

推荐阅读