我正在尝试从“列表中的列表”
创建一个data.framel <- 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
答案 0 :(得分:4)
您几乎就在那里,因为您希望sam1
和sam2
成为列名,您不需要将它们列为列表的一部分,并指定它们是列名。
>l <- list(c("GSM6683", "GSM6684", "GSM6687", "GSM6688"), c(
"GSM6681", "GSM6682", "GSM6685", "GSM6686"))
>df <- data.frame(l)
>colnames(df)<-c("sam1", "sam2")
答案 1 :(得分:2)
如果您从示例中的数据结构开始,请执行以下操作:
df <- data.frame(lapply(l, function(x) x[-1]))
names(df) <- lapply(l, function(x) x[1])
如果您可以选择如何构建数据结构,请执行R_Newbie在答案中所说的内容。