R将列表对象放入表中

时间:2015-09-18 20:58:17

标签: r list dataframe rbind

我有一个列表,里面有很多对象。我想根据这个列表的属性创建一个表。

head(casscade.list)
$`444424960908754944`
screen_name     tweet_id        tweet_created_at        retweet_screen_name
NerSeref        6.028628e+17    2015-05-25 11:44:24     Lasthowen
DURULMA_ZAMANI  6.028631e+17    2015-05-25 11:45:32     Lasthowen
ssari75         6.028647e+17    2015-05-25 11:52:10     Lasthowen   
saintserif2009  6.028672e+17    2015-05-25 12:01:48     Lasthowen
Hejinilim       6.028721e+17    2015-05-25 12:21:13     Lasthowen

$`407136916317171712`
screen_name     tweet_id        tweet_created_at        retweet_screen_name
isa_sakar       6.072663e+17    2015-06-06 15:22:18     cavurizmir
canfeda1923     6.072666e+17    2015-06-06 15:23:34     cavurizmir
Apolloniuss_58  6.072669e+17    2015-06-06 15:24:47     cavurizmir

我需要创建一个必须拥有这些的表;

table
retweet_screen_name screen_name         length  life(seconds)
Lasthowen           Hejinilim           5       2209
cavurizmir          Apolloniuss_58      3       149 
  • 第一行将是转发屏幕名称中的名称(因为它是重复的,其中一个就足够了),
  • 第二行将是列表对象的最后一个screen_name
  • 第三行将是列表对象的长度
  • 第四行将是第一个tweet_created_at和最后一个列表对象之间的时差

我使用了这个功能,它解决了问题的一半

get.summary <- function(i){
        curr.frame = cascade.list[[i]]
        return(c(unique(curr.frame$retweet_screen_name),curr.frame$screen_name[nrow(curr.frame)],
                 unique(curr.frame$retweet_created_at), curr.frame$tweet_created_at[nrow(curr.frame)], 
                 nrow(curr.frame)))
}    

和这段代码:

cdf=data.frame(t(sapply(1:length(cascade.list),get.summary)))

它创建一个包含同一行中所有变量的数据框。

 V1                                                                                     V2
c("EastanbulTimes", "onuryasercan", "2010-12-20 15:18:22", "2015-05-19 18:28:25", "1")  c("Lasthowen", "Apolloniuss_58", "2013-12-01 08:19:39", "2015-06-06 15:24:47", "3")

我需要修复数据帧结构,它应该有6列和行等于列表长度。我还需要添加时间变量。

提前感谢所有建议。

0 个答案:

没有答案