You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用for循环按字符串列表元素生成对应命名的子DataFrame

用for循环拆分DataFrame为多个子DataFrame

核心实现代码

直接用for循环结合assign()函数就能完成需求:

# 遍历目标列表中的每个元素
for (item_name in lst) {
  # 拼接子DataFrame的命名
  target_df_name <- paste0(item_name, "_df")
  # 筛选对应行并赋值到全局环境
  assign(target_df_name, df[df$item == item_name, ])
}

代码说明

  • paste0(item_name, "_df"):自动生成item1_df、item2_df这类符合要求的变量名
  • df[df$item == item_name, ]:筛选出df中item列等于当前遍历元素的所有行
  • assign():将筛选后的子DataFrame绑定到全局环境的对应变量上,执行后直接调用item1_df就能获取对应数据

可选优化:跳过不存在的元素

如果lst中存在df$item里没有的元素,会生成空DataFrame,可添加判断跳过这类情况:

for (item_name in lst) {
  target_df_name <- paste0(item_name, "_df")
  if (item_name %in% df$item) {
    assign(target_df_name, df[df$item == item_name, ])
  } else {
    message(paste(item_name, "不存在于df$item中,已跳过"))
  }
}

内容的提问来源于stack exchange,提问作者therickster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 01:19:58