我有一个名为genalex
的数据框,因为我试图将我的遗传数据放入常见的#genalex"格式。我刚用R中的strsplit
函数来拆分列,现在我有了这个:
> genalex[1:5,1:10]
Ind V1 V2 V3 V4 V5 V6 V7 V8 V9
1 100 A A C C N N C C N
2 101 A A C C N N N N N
3 10 A A C C N N C C N
4 11 A A N N N N C C N
5 12 N N N N N N C C G
此数据框实际上有330行和32,068列。我想用新名称替换每个其他列(V1,V3,V5,V7,V9等)的名称。我还想删除所有其他列名称(V2,V4,V6,V8等)
对于新列名,我想在分割列之前使用旧数据框中的列名。我将调用旧数据框table
。此数据框有16,034列,因为它不包含空格:
table[1:5,1:5]
X X446043 X539052 X614054 X683054
1 100 A C N C
2 101 A C N N
3 10 A C N C
4 11 A N N C
5 12 N N N C
因此,使用table
中的旧列名,然后在每列之间添加空格,我最终希望我的数据框看起来像这样,对于所有32,068列:
> genalex[1:5,1:8]
Ind X446043 X539052 X614054 X683054
1 100 A A C C N N C
2 101 A A C C N N N
3 10 A A C C N N C
4 11 A A N N N N C
5 12 N N N N N N C
感谢您的帮助。
答案 0 :(得分:4)
您可以使用seq
函数获取奇数和偶数位置:
names(genalex)[seq(2,ncol(genalex),2)] <- names(table)
names(genalex)[seq(1,ncol(genalex),2)] <- ""
names(genalex)[1] <- "Ind"
第一行使用表中的列名重命名所有偶数列索引(2,4,6,...),第二行将所有奇数列索引设置为空白。然后将第一列重命名为&#34; Ind&#34;。