如何在R中复制数据框行并按间隔扩展min_value变量
方法2:Base R 实现
如果不需要依赖第三方包,可使用基础循环完成:
# 原数据框 df <- data.frame( name = c("bank1", "bank1", "bank2", "bank2"), min_value = c(0, 25, 0, 15), max_value = c(25, 50, 15, 25), fee = c(0.10, 0.20, 0.05, 0.10) ) # 初始化空数据框 expanded_df_base <- data.frame() # 逐行处理并扩展 for (i in seq(nrow(df))) { current_row <- df[i, ] # 生成0.1间隔的序列 min_sequence <- seq(current_row$min_value, current_row$max_value - 0.1, by = 0.1) # 构造当前行的扩展数据 temp_df <- data.frame( name = rep(current_row$name, length(min_sequence)), min_value = min_sequence, max_value = rep(current_row$max_value, length(min_sequence)), fee = rep(current_row$fee, length(min_sequence)) ) # 合并到总数据框 expanded_df_base <- rbind(expanded_df_base, temp_df) }
说明:
- 循环逐行生成序列并构造临时数据框,最后合并结果
- 处理大数据量时效率低于tidyverse方法,因为
rbind会频繁复制数据
内容的提问来源于stack exchange,提问作者saypeas
相关产品推荐
相关产品推荐

