r - 创建一个连续字母列表,如 R 中 excel 的标题
问题描述
如何在R中创建一个顺序字母列表,如excel的列标题?我的 excel 文件中有 559 列,所以我想创建一个由连续字母组成的向量,例如“A、B、... Z、AA、AB、... AZ、... BA、BB、... " 等等。这样我就可以创建自己的数据字典,所以想“映射”到 excel 的列标题。
解决方案
如果您对基本 R 解决方案感兴趣,可以试试这个:
all <- expand.grid(LETTERS, LETTERS)
all <- all[order(all$Var1,all$Var2),]
out <- c(LETTERS, do.call('paste0',all))
out 将返回 702 个值作为向量,我相信您希望将它们子集化到 559,因此您可以编写:out[1:559]。
要重命名您可以使用的列,其中 data_frame 是您的数据框名称
names(data_frame) <- out[1:559]
不过,一个重要的注意事项是,我在这里假设您只想要包含两个字符的列,不超过这个。
使用 gtools 的通用方法
comb <- lapply(1:3, function(x)gtools::permutations(26,x, LETTERS, repeats.allowed = TRUE))
## Using 3 for excel 3 combinations of alphabets
unlist(lapply(comb, function(x)do.call('paste0', data.frame(x,stringsAsFactors = FALSE))))
一些观察:
> out[1:50] [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" [12] "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" [23] "W" "X" "Y" "Z" "AA" "AB" "AC" "AD" "AE" "AF" "AG" [34] "AH" "AI" "AJ" "AK" "AL" "AM" "AN" "AO" "AP" "AQ" "AR" [45] "AS" "AT" "AU" "AV" "AW" "AX"
推荐阅读
- ios - Swift - Eureka / 在 ButtonRow 的左右添加边距
- mysql - 如何在 SQL 数据库中访问自定义 wordpress 邮箱的内容
- python-3.x - Matplotlib 中的三维绘图,点之间有一条线
- ruby-on-rails - 使用 Imagemagick 从图像中自动裁剪文本(签名)并更改背景颜色
- message-queue - NATS - 只有一个订阅者对微服务架构中的已发布事件采取行动
- c++ - 我的 C++ 合并排序代码有什么问题?
- javascript - 在实际需要时点击填写传单弹出窗口
- html - 使内容在容器内水平滚动
- php - 遍历可能的文件扩展名以获得正确的扩展名
- python - Changing value in data frame column in a loop python