如何在R中选择带变量的列和行?

时间:2015-02-19 10:43:07

标签: r

我有一个对象currency我想用变量Pair选择一列,行等于1。

>currency
           EURUSD EURUSDi USDJPY USDJPYi GBPUSD GBPUSDi AUDUSD AUDUSDi XAUUSD XAUUSDi zeroes
2000-07-16      0       0      0       0      0       1      0       0      0       0      0
2000-07-23      0       0      0       0      0       1      0       0      0       0      0
2000-07-30      0       0      0       0      0       1      0       0      0       0      0
2000-08-06      0       0      0       0      0       0      0       0      0       1      0
2000-08-13      0       1      0       0      0       0      0       0      0       0      0

从控制台我可以使用这样的子集:

> subset(currency$GBPUSDi, GBPUSDi == 1)
           GBPUSDi
2000-07-16       1
2000-07-23       1
2000-07-30       1
2000-08-06       1
2000-08-13       1
2000-08-20       1

但是一旦在带有变量Pair的脚本中传递它就会失败。我在文档中搜索了几个小时,我正在努力弄清楚出了什么问题。

请找到我试过的不同命令:

subset (currency$Pair, Pair == 1)
subset (currency, Pair = 1, select = Pair)
weights$Cur[currency$Pair = 1]

有效的是currency[,c(Pair)],但它只选择列,如何完成Pair = 1的行选择?

带有currency[,c(Pair)][Pair = 1]subset (currency[,c(Pair)], Pair = 1)

===不起作用。

1 个答案:

答案 0 :(得分:0)

currency$Pair[currency$Pair == 1]应该有效($Pair选择列Pair[currency$Pair == 1]选择等于1的值。看起来它在您的情况下不起作用,因为currency不包含变量Pair

如果currency不是数据框而是矩阵,您可以尝试 currency[currency[, c("Pair")] == 1, c("Pair")]