如何将列中第一行元素保存到新变量?

时间:2017-03-21 09:20:06

标签: r

我得到了一个列表变量'bracket',其尺寸为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)后,我遇到了一些麻烦。我收到以下错误:

  

FUN中的错误(X [[i]],...):下标越界。如果我有一些没有值/ NA的行怎么办?

1 个答案:

答案 0 :(得分: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