我不熟悉 R 代码,我试图解决这个问题但没有成功。请帮我!
如果我有这种矢量
> x1 <- c(5,7,9)
> x2 <- c(6,3,4)
....
> xn <- c(1,2,3)
我喜欢把它们结合起来
结果 <- cbind(x1, x2, ..., xn)
这个x1, x2, ..., xn怎么说?
谢谢!
我不熟悉 R 代码,我试图解决这个问题但没有成功。请帮我!
如果我有这种矢量
> x1 <- c(5,7,9)
> x2 <- c(6,3,4)
....
> xn <- c(1,2,3)
我喜欢把它们结合起来
结果 <- cbind(x1, x2, ..., xn)
这个x1, x2, ..., xn怎么说?
谢谢!
您可以ls
与模式参数一起使用
x.data <- ls(pattern='^x.?')
这将返回一个名称列表,可用于get
和sapply
sapply(x.data, get)
# x1 x2 xn
# [1,] 5 6 1
# [2,] 7 3 2
# [3,] 9 4 3
尽管可以解决该问题,但真正的解决方案可能是使用另一种方式来存储向量。你是怎么得到它们的?
通常,当您拥有多个向量时,最好将向量放在列表结构中,而不是作为单独的全局变量。
这是一种方法
x <- list(x1 = c(5,7,9), x2=c(6,3,4), xn=c(1,2,3))
x$x2 # the x2 vector
str(x) # prints an overview of x
# combine them into a matrix
do.call(cbind, x)
这是将一堆向量从文件读入列表的一种方法:
# Read in 10 vectors into x
x <- lapply(1:10, function(i) scan(paste("myvec",i,".txt", sep=""))
x[[3]] # the vector in myvec3.txt
str(x) # prints an overview of x
c(x1, x2, ... xn)
> x1 <- c(5,7,9)
>
> x2 <- c(6,3,4)
>
> xn <- c(1,2,3)
> c(x1, x2, xn)
[1] 5 7 9 6 3 4 1 2 3
>
> matrix(c(x1, x2, xn), ncol=3)
[,1] [,2] [,3]
[1,] 5 6 1
[2,] 7 3 2
[3,] 9 4 3
>