访问向量内部的向量

Ice*_*nix -2 indexing r 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])
Run Code Online (Sandbox Code Playgroud)

然而,打印命令实际上并不打印第三个向量(MyDataR3),而是打印出第一个向量(MyDataR1)的第三个值

有没有办法访问向量中的各个向量?我将如何访问向量内向量的单个值?我认为它会是这样的:

MyDataR[[3]][5] <- 5    #this would access the 5th value of the 3rd vector and modifies it
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Cha*_*ase 5

问题是这一行:

MyDataR <- c(MyDataR1,MyDataR2,MyDataR3)
Run Code Online (Sandbox Code Playgroud)

不做你认为它正在做的事情。它将三个参数组合成一个向量。这是一个可重现的示例:

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
Run Code Online (Sandbox Code Playgroud)

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

mylist <- list(foo, bar, baz)
> mylist[3]
[[1]]
[1] 7 8 9
Run Code Online (Sandbox Code Playgroud)

并且可以按照您的想法进行索引:

mylist[[3]][2] <- -1
> mylist[3]
[[1]]
[1]  7 -1  9
Run Code Online (Sandbox Code Playgroud)