【问题标题】:R create vector from specific matrix elementsR从特定矩阵元素创建向量
【发布时间】:2013-11-26 11:08:27
【问题描述】:

我正在使用 R 读取一些 XML 并将其转换为 deSolve 库可以使用的内容。我正在尝试转换此矩阵:

svars = xpathSApply(doc, "/models/model[@name='SIS']/state_variables/variable")
svars = sapply(svars, xmlAttrs)
svars

      [,1]          [,2]      
id    "S"           "I"       
name  "susceptible" "infected"
value "99"          "1" 

到一个看起来像这样的向量:

svars = c(S = 99, I = 1)

我有点不知道该怎么做,有人可以帮忙吗?

【问题讨论】:

    标签: r vector matrix


    【解决方案1】:

    例如:

    dd <- svars[c("id","value"),]
    setNames(dd$V2,dd$V3)
    

    或一个线性:

    setNames(as.numeric(svars["value", ]), svars["id",])
    

    【讨论】:

    • +1。 setNames(as.numeric(svars["value", ]), svars["id",]) 也有效;)
    • @Jilber!我犹豫了一下,但最后我编辑了我的答案。
    • @agstudy 你的代码成功了,我的代码有点不同:state = as.vector(t(svars[value,]))if(forceNumeric){state = as.numeric(state)}names(state) = svars[name,]
    【解决方案2】:

    我认为以下应该做

    x <- as.numeric(svars['value', ])
    names(x) <- svars['id', ]
    x
    ##  S  I 
    ## 99  1
    

    相同
    c(S = 99, I = 1)
    ##  S  I 
    ## 99  1 
    

    【讨论】:

      猜你喜欢
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多