【问题标题】:How to assign value to a list or vector object inside a vector in R如何为R中向量内的列表或向量对象赋值
【发布时间】:2017-05-04 22:13:46
【问题描述】:

我有一个类似的列表

mylist = list('a','b','c','d')

还有另一个向量,我希望在其中调用 mylist 对象来赋值。

myvec = c('p'=0,'q'=1, mylist[1]=1)

但是执行它会报错

Error: Unexpected '=' in "c('p'=0,'q'=1, mylist[1]="

我以前使用过 python,这样的分配是可能的并且是直接的。但是在 R 中同样不起作用。有什么想法吗?

【问题讨论】:

    标签: arrays r vector


    【解决方案1】:

    你可以使用setNames(),另外注意mylist[1]给出了一个元素列表,为了获取位置一的元素,你需要使用[[(在这种情况下似乎无关紧要,即两者都有效):

    c('p' = 0,'q' = 1, setNames(1, mylist[[1]]))
    
    #p q a 
    #0 1 1 
    

    【讨论】:

    • 谢谢。有效。你能解释一下为什么它在 R 中如此间接,而在 Python 中却非常直接吗?
    • @Ashutosh 我认为你可以在 python 中只使用字典而不是列表来做到这一点,在这种情况下,可能是因为它有一个特殊的 : 而不是 = 表达式可以提供额外的这种情况下的复杂性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2020-07-20
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多