什么';R中的“cons”是什么意思?

什么';R中的“cons”是什么意思?,r,list,R,List,在lisp中,您可以使用cons表单附加到列表(而不是原子向量)。R中的等效函数是什么?我试着用谷歌搜索,但只得到了寻找R的利弊的条目。R语言对象都是向量,可以有任何长度,因此没有与cons对象等价的内容(即,一个左右两侧的双行)。您可以在R中创建一个类来模拟cons对象,或者您可以只使用长度为2的向量,第一个元素是左侧,第二个元素是右侧。您甚至可以将向量中的元素命名为“car”和“cdr”,如中所示 x <- c(1,2) names(x) <- c('car','cdr') x

在lisp中,您可以使用
cons
表单附加到列表(而不是原子向量)。
R
中的等效函数是什么?我试着用谷歌搜索,但只得到了寻找R的利弊的条目。

R语言对象都是向量,可以有任何长度,因此没有与cons对象等价的内容(即,一个左右两侧的双行)。您可以在R中创建一个类来模拟cons对象,或者您可以只使用长度为2的向量,第一个元素是左侧,第二个元素是右侧。您甚至可以将向量中的元素命名为“car”和“cdr”,如中所示

x <- c(1,2)
names(x) <- c('car','cdr')
x示例:

x <- list("A")
y <- c(x, "B")
y
[[1]]
[1] "A"

[[2]]
[1] "B"
R列表(在R术语中称为“递归”)可以使用整数索引访问,或者如果有具有字符值的特定叶的名称,则可以访问。我想
car
应该是
list\u name[[1]]
cdr
应该是
list\u name[-1]
。注意,我使用了不同的提取函数。根据我对LisP的理解,
cdr
是一个列表,而
car
是第一个位置的值,可能是列表,也可能不是列表

可以以更实用的格式使用
[[
[

> '[['(y, 1)
[1] "A"
> '['(y, -1)
[[1]]
[1] "B"
您甚至可以定义汽车或cdr功能:

> car <- function(z) z[[1]]
> car(y)
[1] "A"

> cdr <- function(z) z[-1]
> cdr(y)
[[1]]
[1] "B"
>轿厢(y)
[1] “A”
>指挥官(y)
[[1]]
[1] “B”

不确定cons
做了什么。如果要附加到列表中,请使用
c
append
append(列表(1:3),3)
如果要表示键:值对
集合名(列表(1:3),3)
x
不是列表,而是一个原子向量。
> car <- function(z) z[[1]]
> car(y)
[1] "A"

> cdr <- function(z) z[-1]
> cdr(y)
[[1]]
[1] "B"