在data.frame中切换行和列,将大型列表转换为data.frame,将名为List的Mixed-Length转换为data.frame

时间:2014-05-23 20:20:14

标签: r list dataframe

我试图将大型列表(220559个元素)转换为数据框。每个元素是chr(RT)或chr(0) 我试过了:

data.frame(t(sapply(my.list, c)))

我得到了数据框,但事实证明这是一个观察220559变量,而不是一个变量220559观察。

有没有一种简单的方法可以用变量切换观察结果?或者我必须以不同方式创建数据框?我是R的新手,真的很期待你的帮助。

1 个答案:

答案 0 :(得分:0)

所以你有一个巨大的列表,其中元素是字符“RT”或者它是一个空字符向量(character(0))。并且您希望将其转换为数据框,列表中的每个项目都有一行和一列(220559列)。

问题是data.frames像所有列一样具有相同数量的观察(行)。 length("RT")==1 length(character(0))==0NA。因此,您可以删除这些列,也可以将这些值转换为# "large" list xx<-sample(list(character(), "RT"), 1000, replace=T) #make into data.frame df<-data.frame(lapply(xx, function(x) if(length(x)==0) NA else x)) #add nicer names names(df)<-paste0("V",seq_along(df)) 。我将以我的榜样来假设后者。

data.frame

就是这样。通常将列表转换为data.frame(),您只需拨打{{1}}即可。由于你的零长度向量,这只是有点棘手。