【问题标题】:Reshaping large data set重塑大数据集
【发布时间】:2021-08-05 17:57:39
【问题描述】:

我正在尝试重新格式化我的数据集。目前,它是这样的:

SeqId PlateId Target TargetFullName
1 11 111 111
2 22. 222. 2222.

但是,我希望它看起来像这样:

----- SeqId PlateId TargetFullName
Target - - -
111 1 11 111
222 2 22 222

这就是我要重塑的东西:

library(reshape2)
longnewData <- melt(newData)
(differentSeqs <- getSequencesWithLargestBetweenGroupVariation(
  longnewData, n=10))[,.(SeqId, Target)]

任何帮助将不胜感激 - 谢谢!

【问题讨论】:

  • 您似乎想将一列指定为行名。那是对的吗?如果是,您可以通过简单地设置row.names(df) &lt;- df$Target; df$Target &lt;- NULL 来实现。
  • 话虽如此,在R 世界中,行名已经过时了。像tibblesdata.tables 这样的一些数据结构可能不适用于它们。
  • 基本上,我的列被命名为 SeqId、PlateId、Target、Intensity 等。但是,我想创建一个以目标名称为行的数据框,并将 Intensity 和 SeqId 作为列。如何删除这些额外的列并将行更改为目标名称?
  • 初始代码不是我发布的那样吗?

标签: r reshape2


【解决方案1】:

这似乎达到了你想要的:

数据:
df <- data.frame(SeqId = 1:2, 
                 PlateId = c(11,22), 
                 Target = c(111,222), 
                 TargetFullName = c(111, 2222))
将列变为行:
row.names(df) <- df$Target; df$Target <- NULL
检查结果:
df
    SeqId PlateId TargetFullName
111     1      11            111
222     2      22           2222

【讨论】:

  • @skabir 如果这可行,请随时单击开头旁边的 v 符号接受答案。
【解决方案2】:

我们也可以这样用:

library(tibble)

df %>% column_to_rownames("Target")

    SeqId PlateId TargetFullName
111     1      11            111
222     2      22           2222

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 2019-11-17
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多