R 如何将数据帧列表转换为列表列表?

R 如何将数据帧列表转换为列表列表?,r,list,dataframe,R,List,Dataframe,我想将数据帧列表更改为列表列表,以便能够从数据帧中添加和删除元素。我想以以下内容结束: 例如: > list <- list(list("p"=runif(5), "n"=round(1000*rnorm(5,5,2))), list("p"=runif(10), "n"=round(1000*rnorm(10,5,2))), list("p"=

我想将数据帧列表更改为列表列表,以便能够从数据帧中添加和删除元素。我想以以下内容结束:

例如:

> list <- list(list("p"=runif(5),
                    "n"=round(1000*rnorm(5,5,2))),
               list("p"=runif(10),
                    "n"=round(1000*rnorm(10,5,2))),
               list("p"=runif(15),
                    "n"=round(1000*rnorm(15,5,2)))
)
> class(list[[1]])
[1] "list"
>列表类(列表[[1]])
[1] “列表”

由于你的问题对我来说不够清楚,我猜你有这样的问题:

List  <- list(data.frame(a=1:4, b=4:1),
      data.frame(A=2:6, B=6:2))
或者一个列表

lapply(List, as.list)

data.frame实际上是一个列表。您只需删除该类

mylist <- list(df1=data.frame(a=1:10, b=11:20),df2=data.frame(a=c("a","b"), b=c("c","d")))
str(mylist)
# List of 2
# $ df1:'data.frame':  10 obs. of  2 variables:
#   ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
# ..$ b: int [1:10] 11 12 13 14 15 16 17 18 19 20
# $ df2:'data.frame':   2 obs. of  2 variables:
#   ..$ a: Factor w/ 2 levels "a","b": 1 2
# ..$ b: Factor w/ 2 levels "c","d": 1 2

mylist2 <- lapply(mylist, unclass)
str(mylist2)
# List of 2
# $ df1:List of 2
# ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
# ..$ b: int [1:10] 11 12 13 14 15 16 17 18 19 20
# ..- attr(*, "row.names")= int [1:10] 1 2 3 4 5 6 7 8 9 10
# $ df2:List of 2
# ..$ a: Factor w/ 2 levels "a","b": 1 2
# ..$ b: Factor w/ 2 levels "c","d": 1 2
# ..- attr(*, "row.names")= int [1:2] 1 2

我列出了您的原因,但没有解释清楚。
mylist <- list(df1=data.frame(a=1:10, b=11:20),df2=data.frame(a=c("a","b"), b=c("c","d")))
str(mylist)
# List of 2
# $ df1:'data.frame':  10 obs. of  2 variables:
#   ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
# ..$ b: int [1:10] 11 12 13 14 15 16 17 18 19 20
# $ df2:'data.frame':   2 obs. of  2 variables:
#   ..$ a: Factor w/ 2 levels "a","b": 1 2
# ..$ b: Factor w/ 2 levels "c","d": 1 2

mylist2 <- lapply(mylist, unclass)
str(mylist2)
# List of 2
# $ df1:List of 2
# ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
# ..$ b: int [1:10] 11 12 13 14 15 16 17 18 19 20
# ..- attr(*, "row.names")= int [1:10] 1 2 3 4 5 6 7 8 9 10
# $ df2:List of 2
# ..$ a: Factor w/ 2 levels "a","b": 1 2
# ..$ b: Factor w/ 2 levels "c","d": 1 2
# ..- attr(*, "row.names")= int [1:2] 1 2