How to add variable key/value pair to list object?

前端 未结 4 1756
粉色の甜心
粉色の甜心 2020-12-04 19:36

I have two variables, key and value, and I want to add them as a key/value pair to a list:

key = \"width\"
value = 32

mylist = lis         


        
相关标签:
4条回答
  • 2020-12-04 19:46

    We can use R's list data structure to store data in the form of key-value pair.

    Syntax:

    ObjectName<-list("key"= value)

    Example:

    mylist<-list("width"=32)

    also, refer example: "https://github.com/WinVector/zmPDSwR/blob/master/Statlog/GCDSteps.R"

    0 讨论(0)
  • 2020-12-04 19:49

    R lists can be thought of as hashes- vectors of objects that can be accessed by name. Using this approach you can add a new entry to the list like so:

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

    Here we use the string stored in the variable key to access a position in the list much like using the value stored in a loop variable i to access a vector through:

    vector[ i ]
    

    The result is:

    myList
    $width
    [1] 32
    
    0 讨论(0)
  • 2020-12-04 19:51

    The setNames() built-in function makes it easy to create a hash from given key and value lists. (Thanks to Nick K for the better suggestion.)

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

    Example:

    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)
    

    Then accessing the values through the keys is easy:

    league$bob
     [1] 0.2027
    league$hubert
     [1] 0.0555
    
    0 讨论(0)
  • 2020-12-04 19:51

    List elements in R can be named. So in your case just do

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

    When R encounters this code

    > l$somename=something
    

    where l is a list. It appends to a list an element something, and names it with name somename. It is then can be accessed by using

    > l[["somename"]]
    

    or

    > l$somename
    

    The name can be changed with command names:

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

    Or if you now the position of the element in the list by:

    > names(l)[1] <- "someothername"
    
    0 讨论(0)
提交回复
热议问题