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]]中迭代 –