组合前两列并将其转换为R data.frame中的行名称

时间:2013-12-03 06:58:10

标签: r dataframe

我的数据如下:

> read.table("http://dpaste.com/1491018/plain/",header=TRUE)
        Probes Gene.symbol Stim1 Stim2 Stim3 Stim4
1   1415670_at        Copg 1.133 1.049 1.013 1.124
2   1415671_at    Atp6v0d1 1.068 1.006 1.082 1.234
3   1415672_at      Golga7 1.010 0.883 1.061 1.029
4   1415673_at        Psph 0.943 0.799 0.982 1.064
5 1415674_a_at     Trappc4 1.048 0.960 1.191 1.118
6   1415675_at        Dpm2 1.053 1.104 1.053 1.057

我想要做的是创建一个结合前两列的新数据框 并将其转换为行名称,

                     Stim1 Stim2 Stim3 Stim4
1415670_at-Copg      1.133 1.049 1.013 1.124
1415671_at-Atp6v0d1  1.068 1.006 1.082 1.234
1415672_at-Golga7    1.010 0.883 1.061 1.029
1415673_at-Psph      0.943 0.799 0.982 1.064
1415674_a_at-Trappc4 1.048 0.960 1.191 1.118
1415675_at-Dpm2      1.053 1.104 1.053 1.057

如何做到这一点?

2 个答案:

答案 0 :(得分:8)

试试这个:

 dat <- read.table("http://dpaste.com/1491018/plain/",header=TRUE)
 rownames(dat) <- do.call(paste,c(dat[c("Probes","Gene.symbol")],sep="-"))
 dat <- dat[,!names(dat) %in% c("Probes","Gene.symbol")] 
 dat

结果:

>      dat
                     Stim1 Stim2 Stim3 Stim4
1415670_at-Copg      1.133 1.049 1.013 1.124
1415671_at-Atp6v0d1  1.068 1.006 1.082 1.234
1415672_at-Golga7    1.010 0.883 1.061 1.029
1415673_at-Psph      0.943 0.799 0.982 1.064
1415674_a_at-Trappc4 1.048 0.960 1.191 1.118
1415675_at-Dpm2      1.053 1.104 1.053 1.057

答案 1 :(得分:1)

3年后,但很简单。

row.names(http://dpaste.com/1491018/plain/)&lt; -paste(探针,Gene.symbol,sep =&#34; - &#34;)