【问题标题】:data.frame from lists in list, weird column names来自列表中的列表的 data.frame,奇怪的列名
【发布时间】:2013-08-05 15:34:30
【问题描述】:

我正在尝试从“列表中的列表”制作一个 data.frame

l <- list(c("sam1", "GSM6683", "GSM6684", "GSM6687", "GSM6688"), c("sam2", 
"GSM6681", "GSM6682", "GSM6685", "GSM6686"))
df <- data.frame(l)

1) 我得到一个带有奇怪列名的 date.frame,我该如何避免呢? 2)我想从列表中的内部列表的第一个元素中获取列名

像这样:

column names: sam1, sam2
row1 GSM6683 GSM6681
row2 GSM6684 GSM6682
row3 GSM6687 GSM6685
row4 GSM6688 GSM6686

【问题讨论】:

    标签: r list dataframe columnname


    【解决方案1】:

    您快到了,因为您希望 sam1sam2 成为列名,您不需要将它们作为您列表的一部分并指定它们是列名。

    >l <- list(c("GSM6683", "GSM6684", "GSM6687", "GSM6688"), c( 
        "GSM6681", "GSM6682", "GSM6685", "GSM6686"))
    >df <- data.frame(l)
    >colnames(df)<-c("sam1", "sam2")
    

    【讨论】:

    • 你也可以命名你的列表:names(l) &lt;- c('sam1', 'sam2') 然后使用data.frame(l)
    【解决方案2】:

    如果您从示例中的数据结构开始,请执行以下操作:

    df <- data.frame(lapply(l, function(x) x[-1]))
    names(df) <- lapply(l, function(x) x[1])
    

    如果您可以选择如何构建数据结构,请按照 R_Newbie 在他的回答中所说的去做。

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 2015-11-10
      • 2020-09-19
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      相关资源
      最近更新 更多