[刚刚开始学习R]
说,我想创建一个值为1 4 6 8
的向量。这些都不起作用:
x <- [1, 4, 6, 8]
x <- [1 4 6 8]
有没有办法使用文字符号创建矢量,即不使用函数等?
答案 0 :(得分:3)
解决您的第一个问题
有没有办法使用文字符号创建矢量,即没有 使用函数等?
你可以用一种模仿的方式来创建一个向量,这是你使用&#34;文字符号&#34;以上;但技术上(几乎)R中的所有内容都是函数调用,甚至是括号索引[
和对象赋值<-
。例如,您可以执行类似
x <- NULL
x[1:4] <- 1:4
##
> x
[1] 1 2 3 4
但是再次[<-
和:
是函数 - 通过键入?"[<-"
或?"["
来查看帮助文件。这是否更加尴尬&#34;比你的选择当然是主观的,但一旦你习惯了R语言,你很可能不会再给它一个想法。我个人更喜欢像x[1, 2, 3, 4]
这样的东西,你可以在Python,Julia等中做...无论如何,你的第一个例子对vector
无效,因为你在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
但显然这不是(一维)向量的情况。 关于速度的另一点,由于您提出的语法无效,因此无法对此进行准确测试。
答案 1 :(得分:1)
另一种方法是创建一个列表,然后将其转换为这样的矢量:
x <- unlist(list(1,4,6,8))