2017-03-21 41 views
0

我得到了一個列表變量'括號',其維數爲n x m,其中n表示行,m表示給定行中元素的數量。然而,n是恆定的,但是m是變化的。如何將列中第一個元素從列表中保存到新變量?

> bracket 
[[1]] 
[1] 8 

[[2]] 
[1] 11 22 

[[3]] 
[1] 13 25 

[[4]] 
[1] 18 

我想看到以下內容:

> bracket 
[1] 8 11 13 18 

我怎樣才能做到這一點?感謝您的幫助!


使用sapply(bracket, '[[', 1)後,我有一些麻煩。我得到了以下錯誤:

Error in FUN(X[[i]], ...) : subscript out of bounds. What to do if I have got some rows with no value/NA?

+0

我得到了以下錯誤:錯誤FUN(X [[I]],。 ..):下標越界。 如果我有一些沒有值/ NA的行,該怎麼辦? –

+0

@ zx8754這不是一個騙局。 OP有一些其他問題。 – akrun

+0

NA無關緊要。空插槽雖然會導致錯誤。爲了克服它們,你可以簡單地執行'sapply(括號[長度(括號)!= 0],'[[',1]' – Sotos

回答

1

我公司生產我自己的數據例以再現錯誤:

bracket <- list(8, c(11, 22), c(13, 25), 18) 
sapply(bracket, '[[', 1) # will not reproduce the error 
sapply(bracket, '[', 1) # will not reproduce the error 

bracket <- list(8, c(11, 22), numeric(0), c(13, 25), 18) 
sapply(bracket, '[[', 1) # will reproduce the error 
sapply(bracket, '[', 1) # gives NA 

na.omit(sapply(bracket, '[', 1)) # omits the NAs 
相關問題