我试图提出两件事:一个单元格中的值> /< / =到另一个单元格中的值,以及到单元格的相应日期。在这种情况下,它是>。
我的数据 - res - 是:
head(res)
GMT
NYSELOSS ES99
1993-12-16 -0.28136694 1.743147
1993-12-17 -0.63817553 1.719892
1993-12-20 0.07743844 1.758305
1993-12-21 0.17491580 1.742691
1993-12-22 -0.39203213 1.719068
1993-12-23 -0.13143421 1.723541
tail(res)
GMT
NYSELOSS ES99
2005-11-04 0.3623103 3.000793
2005-11-07 -0.1578494 2.928393
2005-11-08 0.3957594 2.839604
2005-11-09 -0.1503598 2.780169
2005-11-10 -0.3877294 2.698658
2005-11-11 -0.4144052 2.634240
我可以使用以下代码字符串来提取值:
res[(res$NYSELOSS >= res$ES99)]
[1] 2.259965 3.015331 6.791045 5.274660 4.701324 1.648440 2.699520 4.060133 4.418048 4.104483
但我不能拉出相应的日期。
有谁知道怎么做?
谢谢!
更新
以下是数据:
dput(head(res))
new("timeSeries"
, .Data = structure(c(-0.281366940350214, -0.638175532646112, 0.0774384430632047,
0.174915802081443, -0.392032128912856, -0.131434207552861, 1.74314672137931,
1.71989198272187, 1.75830475778356, 1.74269091505136, 1.71906771494426,
1.72354094272865), .Dim = c(6L, 2L), .Dimnames = list(NULL, c("NYSELOSS",
"ES99")))
, units = c("NYSELOSS", "ES99")
, positions = c(7.56e+08, 756086400, 756345600, 756432000, 756518400, 756604800
)
, format = "%Y-%m-%d"
, FinCenter = "GMT"
, recordIDs = structure(list(), .Names = character(0), row.names = integer(0), class = "data.frame")
, title = "Time Series Object"
, documentation = "Tue Jun 3 15:02:41 2014"
)
UPDATE2
仍有问题:/
subset(res, res$NYSELOSS >= res$ES99, select = "GMT")
[1] 2.259965 3.015331 6.791045 5.274660 4.701324 1.648440 2.699520 4.060133 4.418048 4.104483
答案 0 :(得分:1)
您感兴趣的似乎是数据集的行名称。您应该可以使用row.names
来获取这些内容,例如:
row.names(subset(res, NYSELOSS >= ES99))
更新:对象是包timeSeries
中的timeSeries
对象,subset
未针对此类对象实现(与head
和tail
不同这是实施的)。为了子集,您必须在对象周围包裹as.data.frame
:
row.names(subset(as.data.frame(res), NYSELOSS >= ES99))
这应该可以解决问题。