2014-02-19 55 views
0

我想我的问题是双重的从列表到n个向量在R

我有一个n个数据帧的列表。 我想制作n个数据帧b1,b2,b3 ... bn,这样我就可以更容易地访问其他一些功能的数据。

例如,当我使用hist(log(b[[1]]$var))我得到的各种错误,

,但如果相反,我首先做b1 = b[[1]],然后hist(log(b1))让我没有任何问题。

  1. 如何创建N个数据帧B1,B2 ......从n个对象的我
  2. 如果我不能让B1,B2 ...... BN单独的数据帧列表和/或BN,我将如何通过原始b[[1]]表单中的函数可靠地传递对象?

回答

0

编辑的版本

我想我误解你的问题。

B [[1]]是$ var应该给你一个问题,如果B [[1]]确实是一个data.frame。

所以,我的直觉是你的清单项目b不是data.frame(至少其中一个不应该是)。

要将对象转换为data.frame,请使用as.data.frame。因此,要纠正你的问题,此修复程序应该做的伎俩:

for (i in seq_along(b)) { 
    b[[i]] <- as.data.frame(b[[i]]) 
} 
0
l <- list(df1=data.frame(a=1:5), df2=data.frame(a=6:10)) # example list 
names(l) <- paste0("b", 1:length(l)) # rename df's in list to b_n 
list2env(l, envir=globalenv()) # b1 and b2 are now directly addressable 
+0

啊,我已经改名为所有对象列表,以B1,B2等..所以list2env(L,ENVIR = globalenv() )有点像附加他们?谢谢卢克。 – user3330466

+0

@ user3330466查看'?list2env'。它将所有(命名的)列表组件作为对象放到全局环境中,该环境包含您可以从任何地方访问的数据框架,函数等。 – lukeA