为何For循环仅拼接最后一次迭代结果?Excel列名生成问题
问题排查:Excel列名生成循环的错误原因
你的循环只执行了一次,导致只生成了Z开头的双字母列名,问题出在循环的迭代范围设置上:
length(LETTERS)返回的是单个数值26,所以for(n in length(LETTERS))等价于for(n in 26),循环仅会运行一次,n的值固定为26(对应LETTERS的最后一个元素"Z"),因此只在原有A-Z的基础上追加了ZA到ZZ的组合。
要得到完整的Excel列名序列,需要让循环遍历1到26的所有整数,修正后的代码如下:
excel_letters <- LETTERS for(n in seq_along(LETTERS)){ excel_letters <- c(excel_letters, paste0(LETTERS[n], LETTERS)) }
这样循环会从n=1到n=26依次执行,每次将当前LETTERS[n]与所有LETTERS拼接的结果追加到向量中,最终就能得到A-Z、AA-AZ、BA-BZ……ZA-ZZ的完整序列。
内容的提问来源于stack exchange,提问作者user13267770
相关产品推荐
相关产品推荐

