R 如何将数据框中的列表元素转换为数据框

R 如何将数据框中的列表元素转换为数据框,r,list,dataframe,R,List,Dataframe,我有一个包含一些列表项的数据框,在该数据框中,我希望将所有列表项转换为一个数据框。示例数据帧df。我想要没有任何列表项的数据帧 structure(list(Study = structure(c(1L, 3L, 2L), .Label = c("new", "y", "z"), class = "factor"), IQC = structure(list(result.1 = 4, result.2 = 20, result.3 = 2.67), .Names = c("resu

我有一个包含一些列表项的数据框,在该数据框中,我希望将所有列表项转换为一个数据框。示例数据帧
df
。我想要没有任何列表项的数据帧

structure(list(Study = structure(c(1L, 3L, 2L), .Label = c("new", 
"y", "z"), class = "factor"), IQC = structure(list(result.1 = 4, 
    result.2 = 20, result.3 = 2.67), .Names = c("result.1", "result.2", 
"result.3")), EQC = structure(list(result.1 = "1.12*", result.2 = "0.9*", 
    result.3 = 3.1), .Names = c("result.1", "result.2", "result.3"
)), CQCg = structure(list(result.1 = 307.65, result.2 = 307.65, 
    result.3 = 16.16), .Names = c("result.1", "result.2", "result.3"
)), CQCp = structure(list(result.1 = 22.27, result.2 = 20.93, 
    result.3 = 9.59), .Names = c("result.1", "result.2", "result.3"
)), AQCg = structure(list(result.1 = 10.8, result.2 = 8.99, result.3 = 8.37), .Names = c("result.1", 
"result.2", "result.3")), AQCp = structure(list(result.1 = 3.81, 
    result.2 = "1.07*", result.3 = "0.2*"), .Names = c("result.1", 
"result.2", "result.3")), Rank = c(1.42, 1.92, 2.67)), .Names = c("Study", 
"IQC", "EQC", "CQCg", "CQCp", "AQCg", "AQCp", "Rank"), row.names = c(NA, 
3L), class = "data.frame")

您可以使用
unlist
执行所需操作。我希望这是有帮助的

unlisted <- as.data.frame(t(apply(df, 1, unlist)))

unlisted要从data.frame中的任何列中删除
list
类,只需使用

df[] <- unlist(df)
但可以验证列表列是否已转换为字符列:

#> sapply(df,class)
#  Study         IQC         EQC        CQCg        CQCp        AQCg        AQCp        Rank 
#"character" "character" "character" "character" "character" "character" "character" "character" 

PS:docendodiscimus指出了这个答案之前版本中的一个错误。

@docendodiscimus可能我误读了这个问题。我以为目标是删除所有非列表列。@docendodiscimus我想你是对的。我将尝试更正此问题。谢谢您的评论。我认为只有
unlist(df)
不是解决方案。它改变了数据框的格式。@哈希姆请注意赋值左边的空方括号:
df[]我不知道如何解释,但是,您的代码使数据框变宽了,检查
ncol
,它返回
NULL
#> sapply(df,class)
#  Study         IQC         EQC        CQCg        CQCp        AQCg        AQCp        Rank 
#"character" "character" "character" "character" "character" "character" "character" "character"