在 R 中创建向量(关联数组)

Creating a vector in R (Associative array)

我知道我可以像这样在 R 中创建一个数组:

     vec <- c(a=1,b=2,c=3)
     vec["b"]
     #b 
     #2

我有一个这样的列表:

> traits
[1] STD V1  V2  V3  W1  W2  W3 
Levels: STD V1 V2 V3 W1 W2 W3

我想要创建什么和关联数组

    AA<- c(STD=0,V1=0,V2=0,V3=0,W1=0,W2=0,W3=0)

然后我可以更新数组 AA("STD")=1 或其他任何内容

你可以试试-

traits <- factor(letters[1:3])
AA <- setNames(numeric(length(x)), x)
AA

#a b c 
#0 0 0 

我们可以试试

setNames(rep(0, length(traits)), levels(traits)[traits])
STD  V1  V2  V3  W1  W2  W3 
  0   0   0   0   0   0   0 

数据

traits <- factor(c("STD", "V1", "V2", "V3", "W1", "W2", "W3"))