r - 转置数据框

标签 r dataframe

我需要转置一个大数据框,所以我使用了:

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

这是我得到的:

df.aree[c(1:5),c(1:5)]
                         10428        10760        12148        11865
    name                M231T3       M961T5       M960T6      M231T19
    GS04.A        5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
    GS16.A        5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
    GS20.A        5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
    GS40.A        3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04    

我的问题是我需要消除新的列名称(10428、10760、12148、11865),因为我需要使用第一行作为列名称。

我尝试使用 col.names() 函数,但没有获得我需要的东西。

你有什么建议吗?

编辑

谢谢你的建议!!!使用它我得到:

df.aree[c(1:5),c(1:5)]
                        M231T3       M961T5       M960T6      M231T19
    GS04.A        5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
    GS16.A        5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
    GS20.A        5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
    GS40.A        3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
    GS44.A        1.225938e+04 2.681887e+03 1.154924e+04 4.202394e+04

现在我需要转换因子列中的行名称(GS..)....

最佳答案

当名称列位于其中时,最好不要转置 data.frame - 所有数值都将转换为字符串!

这是一个将数字保留为数字的解决方案:

# first remember the names
n <- df.aree$name

# transpose all but the first column (name)
df.aree <- as.data.frame(t(df.aree[,-1]))
colnames(df.aree) <- n
df.aree$myfactor <- factor(row.names(df.aree))

str(df.aree) # Check the column types

关于r - 转置数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778908/

相关文章:

r - 按行而不是列取消列出数据框

Python - 从数据框中删除行( Pandas )

返回因子变量第一次和最后一次出现的日期

r - 用 R 删除反向重复项

python - 循环 DF 中的列并根据 R 或 Python 中每个附加列的条件计算总和

r - 如何规划庭院灯的最有效路线

python - 在 Pandas 中按位置或索引访问列

python - 更改 value_counts 中的排序

python - 按顺序为数据框中的多行从列表中分配多个值

r - 为什么使用ifelse后还要重新设置as.Date origin?有没有更好的办法?