访问矢量内的矢量

时间:2011-09-06 15:19:28

标签: r vector indexing

  

可能重复:
  Is there a way to access an index within a vector

我最近发布了一个类似的问题,但是我没有真正得到答案。 我需要访问向量列表中的向量,这是到目前为止代码的样子:

MyDataR1 <- scan("D:\\R Code\\Residential\\bvl5 res.txt",what='character') 
MyDataR2 <- scan("D:\\R Code\\Residential\\bvl5 res.txt",what='character') 
MyDataR3 <- scan("D:\\R Code\\Residential\\cpk11 res.txt",what='character')

MyDataR <- c(MyDataR1,MyDataR2,MyDataR3)
print (MyDataR[3])

然而,打印命令实际上并不打印第3个矢量(MyDataR3),它会从第1个矢量(MyDataR1)打印出第3个值

有没有办法访问矢量中的各个向量?如何在向量中访问向量的单个值?我认为它看起来像这样:

MyDataR[[3]][5] <- 5    #this would access the 5th value of the 3rd vector and modifies it

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

问题是这一行:

MyDataR <- c(MyDataR1,MyDataR2,MyDataR3)

不会按照您的想法行事。它将三个参数组合成一个向量。这是一个可重现的例子:

foo <- 1:3
bar <- 4:6
baz <- 7:9

foobarbaz <- c(foo, bar, baz)
> foobarbaz
[1] 1 2 3 4 5 6 7 8 9

您要做的是创建一个列表对象:

mylist <- list(foo, bar, baz)
> mylist[3]
[[1]]
[1] 7 8 9

可以按照您的想法编制索引:

mylist[[3]][2] <- -1
> mylist[3]
[[1]]
[1]  7 -1  9

答案 1 :(得分:0)

c是连接的缩写,所以这种行为很明显。请尝试使用list