[刚开始学习R语言]
比如说,我想创建一个向量包含以下数值1 4 6 8
。但是下面的代码都不行:
x <- [1, 4, 6, 8]
x <- [1 4 6 8]
有没有一种方法可以使用文字记录方式创建向量,而无需使用函数等?
x <- unlist(list(1,4,6,8))
x <- NULL
x[1:4] <- 1:4
##
> x
[1] 1 2 3 4
不过,[<-
和 :
也是函数 - 通过输入 ?"[<-"
或 ?"["
查看帮助文件。是否比你的另一种方式更加繁琐当然是主观的,但一旦你习惯了R语言,你很可能就不会再想太多了。就我个人而言,我更喜欢这种方式,而不像在Python、Julia等语言中可能会使用 x[1, 2, 3, 4]
这样的方式...无论如何,你的第一个示例对于一个向量
来说是无效的,因为在R语法中,你需要使用(n-1)个逗号来表示(n)个维度(在这种情况下)。例如,你可以创建一个三维数组:
Y <- array(1:27,dim=c(3,3,3))
> Y
, , 1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
, , 2
[,1] [,2] [,3]
[1,] 10 13 16
[2,] 11 14 17
[3,] 12 15 18
, , 3
[,1] [,2] [,3]
[1,] 19 22 25
[2,] 20 23 26
[3,] 21 24 27
and access elements as
> Y[1,1,3]
[1] 19
> Y[1,1,1]
[1] 1
> Y[1,2,3]
[1] 22
但很明显这并不适用于(一维)向量。 至于您提到的速度问题,由于您提出的语法无效,所以无法进行准确测试。
x1 <- NULL ; x1[1:10000] <- 1:10000
而不是直接写成 x <- 1:10000
?另外,:
也是一个函数,那么它和使用c
有什么不同呢? - David Arenburgx <- [1,2,3,4]
类型语法的东西;在我的代码中,我肯定会只使用 x <- 1:10000
。此外,我注意到 :
也是一个函数 - 正如你上面指出的那样,没有办法避免使用某种类型的函数。我并不是真的在说它们有什么不同,我只是试图想出一些类似于他使用 c(...)
vs. [...]
的比较的东西。 - nrussell
c(1,4,6,8)
为什么这么慢 - 只需要多输入 一个 字符。 - Ben Bolker<-
是什么? - David Arenburgx
中。无论您如何表示它(c(1,2,3) 或 [1,2,3]),所需的工作量都是相同的。 - Spacedman