2017-03-21 42 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 
相关问题