如何用R语言生成符合指定规则的数据框(支持参数替换)
生成符合规则的R数据框方案
不需要用for循环,用tidyverse工具链就能高效实现,还能方便后续替换参数:
- 先加载依赖包
library(tidyverse)
- 定义可灵活替换的参数
把需要调整的Rack值、profundidad范围、nivel分组都单独拎出来,后续修改直接改这里就行:
# 可替换参数 target_rack <- 48 profundidad_range <- 1:13 nivel_all <- LETTERS[1:12] # A到L enable_y_nivels <- LETTERS[1:5] # A到E enable_n_nivels <- LETTERS[6:12] # F到L
- 生成目标数据框
用expand_grid生成所有变量的笛卡尔积,再用case_when设置enable列:
result_df <- expand_grid( Rack = target_rack, profundidad = profundidad_range, nivel = nivel_all ) %>% mutate( enable = case_when( nivel %in% enable_y_nivels ~ "Y", nivel %in% enable_n_nivels ~ "N", TRUE ~ NA_character_ # 兜底处理不在分组里的nivel值 ) )
说明
expand_grid会自动生成所有参数组合,比for循环更简洁高效- 所有可调整项都集中在参数定义部分,后续要改Rack值、profundidad的取值范围,或者nivel的分组规则,直接修改对应的变量即可,不用动核心生成逻辑
内容的提问来源于stack exchange,提问作者Miguel Angel Acosta Chinchilla
相关产品推荐
相关产品推荐

