1

我正在尝试从“列表中的列表”中创建一个 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
4

2 回答 2

4

您几乎就在那里,因为您想要sam1并且sam2成为列名,您不需要将它们作为您列表的一部分并指定它们是列名。

>l <- list(c("GSM6683", "GSM6684", "GSM6687", "GSM6688"), c( 
    "GSM6681", "GSM6682", "GSM6685", "GSM6686"))
>df <- data.frame(l)
>colnames(df)<-c("sam1", "sam2")
于 2013-08-05T15:44:54.483 回答
2

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

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

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

于 2013-08-05T15:53:32.650 回答