如何添加可变的键/值对列表对象?

我有两个variables, keyvalue ,我想将它们作为键/值对添加到列表中:

 key = "width" value = 32 mylist = list() mylist$key = value 

结果是这样的:

 mylist # $key # [1] 32 

但是我想代之以:

 mylist # $width # [1] 32 

我怎样才能做到这一点?

R列表可以被认为是可以通过名字访问的对象的哈希向量。 使用这种方法,你可以添加一个新的条目,如下所示:

 key <- "width" value <- 32 mylist <- list() mylist[[ key ]] <- value 

这里我们使用存储在variables键中的string访问列表中的某个位置,就像使用存储在循环variablesi中的值来访问一个向量:

 vector[ i ] 

结果是:

 myList $width [1] 32 

R中的列表元素可以被命名。 所以你的情况就是这样

  > mylist = list() > mylist$width = value 

当R遇到这个代码

 > l$somename=something 

其中l是一个列表。 它将一个元素附加到列表中,并将其命名为somename。 那就可以通过使用来访问

 > l[["somename"]] 

要么

 > l$somename 

名称可以用命令名称改变:

 > names(l)[names(l)=="somename"] <- "othername" 

或者,如果你现在的列表中的元素的位置:

 > names(l)[1] <- "someothername" 

setNames()内置函数使得从给定的键和值列表创build一个散列很容易。 (感谢Nick K提供了更好的build议。)

用法: hh <- setNames(as.list(values), keys)

例:

 players <- c("bob", "tom", "tim", "tony", "tiny", "hubert", "herbert") rankings <- c(0.2027, 0.2187, 0.0378, 0.3334, 0.0161, 0.0555, 0.1357) league <- setNames(as.list(rankings), players) 

然后通过键访问值很容易:

 league$bob [1] 0.2027 league$hubert [1] 0.0555 

我们可以使用R的列表数据结构以键值对的forms存储数据。

句法:

ObjectName<-list("key"= value)

例:

mylist<-list("width"=32)

另请参阅示例: “https://github.com/WinVector/zmPDSwR/blob/master/Statlog/GCDSteps.R”;