0
为什么R中制作名单列表中的R
e=list(a,b,c,d)
比不同:
e=list(a,b)
e=list(e,c)
e=list(e,d)
?
第二种方法可以很容易地在for循环中使用,但它会产生不同的结果,并且每次迭代创建一个对象,所以不能使用第一种方法,任何提示?
为什么R中制作名单列表中的R
e=list(a,b,c,d)
比不同:
e=list(a,b)
e=list(e,c)
e=list(e,d)
?
第二种方法可以很容易地在for循环中使用,但它会产生不同的结果,并且每次迭代创建一个对象,所以不能使用第一种方法,任何提示?
如果你绝对要使用这种方法,你可以这样做:
# Make up some data
a <- 1:3; b <- 4:5; c <- 6:10; d <- 11:17
# Build up the lists
e0 <- list(a, b, c, d)
e <- list(a, b)
e <- c(e, list(c))
e <- c(e, list(d))
# Compare the two
identical(e0, e) # TRUE
在现实生活中的案例,但是,而不是使用一个循环,你可能会使用函数从会更好*apply
系列,例如lapply()
,它将直接返回输出列表。
如果您试图连接两个列表,您应该使用'c(list1,list2)'而不是'list(list1,list2)''。第二种方法创建长度为2的列表(两个列表)。 – konvas
在konvas的评论中展开你可能需要'c(e,list(c))'(如果c不是一个列表)等等,或者更好的是,分配一个长度为4的列表并且添加a,b,c和d在相应的e [[i]]中迭代 –