当属性在数组中时,仅从某些属性获取值

时间:2014-01-30 00:32:31

标签: arrays xml r

我认为这是一个非常直截了当的问题,但试图弄清楚出了什么问题却是如此令人沮丧。在尝试从R:

中的XML文件中获取数据时,这是我的输入和输出
> stats[1]
[1] "accurate_back_zone_pass"
> xmlValue(getNodeSet(r, "//MatchData/TeamData//MatchPlayer/Stat[@Type = 'accurate_back_zone_pass']")[[1]])
[1] "2"

这样才有效!

> xmlValue(getNodeSet(r, "//MatchData/TeamData//MatchPlayer/Stat[@Type = stats[1]]")[[1]])
Error in getNodeSet(r, "//MatchData/TeamData//MatchPlayer/Stat[@Type = stats[1]]")[[1]] : 
  subscript out of bounds

但那不是??

第二个getNodeSet调用的输出是一个空列表,但唯一的区别是我从现有数组调用“accurate_back_zone_pass”而不是手动输入单词。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

R不解释引号内的变量名称。您应该阅读一些介绍性的R文本(例如see section 2.6 of R Intro)。所以在你的情况下,你需要做一些像(未经测试的):

xmlValue(
  getNodeSet(
    r, 
    paste(
      "//MatchData/TeamData//MatchPlayer/Stat[@Type = ", 
      stats[1]], ")", sep=""
  ) )[[1]]
)