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)
任何帮助将不胜感激。
问题是这一行:
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)