如何添加可变的键/值对列表对象?
我有两个variables, key
和value
,我想将它们作为键/值对添加到列表中:
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”;