我最近发布了一个类似的问题,但是我没有真正得到答案。 我需要访问向量列表中的向量,这是到目前为止代码的样子:
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
非常感谢任何帮助。
答案 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
。