转置数据框

Transposing a data frame

我正在尝试在 R 中转置数据框,但运气不佳。

数据框包含一个表观遗传数据集,第一列有 300,000+ 个 CpG 位点。 74 个额外的列分为对照组和实验组(癌症 = 69,正常 = 5)。

我已将数据框转换为矩阵,因此我可以转置数据并将其转换回数值。但是,每次我尝试将数据转换回数据框时,它都会以列表形式结束。

我正在尝试执行以下操作:

  1. 将第一列设为 headers。
  2. 将 headers 的名称设为第一列中的值(X 除外,我想将其删除)。

    data[1:10, 1:10]

        X Tumor.33 Normal.01 Tumor.01 Tumor.34 Tumor.35 Tumor.02 Tumor.03
    
    
    cg00000029  0.29224   0.32605  0.58762  0.32397  0.23482  0.24012  0.22941
    
    cg00000108  0.91243   0.89785  0.92337  0.90080  0.91220  0.92256  0.92709
    
    cg00000109  0.77676   0.73910  0.81545  0.73603  0.76276  0.85808  0.85142
    
    cg00000165  0.34261   0.30960  0.56392  0.32363  0.33980  0.61755  0.70855
    
    cg00000236  0.84688   0.80654  0.84423  0.80935  0.85600  0.87766  0.83509
    
    cg00000289  0.61535   0.60874  0.62496  0.66421  0.60556  0.66824  0.65243
    
    cg00000292  0.72491   0.63333  0.55031  0.69690  0.73547  0.71826  0.62223
    
    cg00000321  0.31650   0.29422  0.37737  0.28428  0.28417  0.70437  0.34829
    
    cg00000363  0.26309   0.31460  0.29135  0.26339  0.20117  0.60604  0.60548
    
    cg00000622  0.03325   0.02190  0.03293  0.04032  0.02815  0.03494  0.04126
    

使用 t() 函数转置矩阵或数据框。在后一种情况下,行名成为变量(列)名。

df > data[1:10, 1:10]

t(df)

来源:https://www.r-statistics.com/tag/transpose/

data <- as.data.frame(t(data))

这样可以确保数值不会转换为字符串值。