R语言技术问题:提取数据框列名并生成有序数值标识
解决R语言列名映射为连续数值的问题
问题原因
你用as.numeric(colnames(exampledf)[1:6])得到全NA,是因为前6列的列名是包含字母和下划线的字符串,无法直接被解析为数值类型,所以转换失败。
解决方案
要按顺序给前6列分配1到6的数值,同时记录映射关系,可按以下步骤操作:
- 提取目标列名
target_cols <- colnames(exampledf)[1:6]
- 生成对应连续数值
znum <- 1:length(target_cols)
运行后znum的结果就是你预期的:
[1] 1 2 3 4 5 6
- 记录列名与数值的映射关系
如果需要保存映射关系,可以生成一个数据框:
col_mapping <- data.frame(列名 = target_cols, 映射数值 = znum)
输出的映射表如下:
列名 映射数值 1 Chr1_1 1 2 Chr1_2 2 3 Chr2_1 3 4 Chr2_2 4 5 Chr3_1 5 6 Chr3_2 6
内容的提问来源于stack exchange,提问作者Dimeresia
相关产品推荐
相关产品推荐

