日付列と他のいくつかの値列を持つデータフレームがあります。データフレームから、日付列が既存の日付リストの要素のいずれかと一致する行を抽出したいと思います。たとえば、1つの要素のリストを使用すると、日付「2012-01-01」はデータフレームから日付「2012-01-01」の行をプルします。
数字については、値を一致させる方法を知っていると思います。このコード:
testdf <- data.frame(mydate = seq(as.Date('2012-01-01'),
as.Date('2012-01-10'), by = 'day'),
col1 = 1:10,
col2 = 11:20,
col3 = 21:30)
...このデータフレームを生成します:
mydate col1 col2 col3
1 2012-01-01 1 11 21
2 2012-01-02 2 12 22
3 2012-01-03 3 13 23
4 2012-01-04 4 14 24
5 2012-01-05 5 15 25
6 2012-01-06 6 16 26
7 2012-01-07 7 17 27
8 2012-01-08 8 18 28
9 2012-01-09 9 19 29
10 2012-01-10 10 20 30
私がすることができます:
testdf[which(testdf$col3 %in% c('25','29')),]
これを生成します:
mydate col1 col2 col3
5 2012-01-05 5 15 25
9 2012-01-09 9 19 29
私はこれを次のようなリストに一般化することができます:
myvalues <- c('25','29')
testdf[which(testdf$col3 %in% myvalues),]
そして、私は同じ出力を取得します。だから、同じアプローチでデートできると思っていたのですが、間違っていたようです。これを行う:
testdf[which(testdf$mydate %in% c('2012-01-05','2012-01-09')),]
私にこれを取得します:
[1] mydate col1 col2 col3
<0 rows> (or 0-length row.names)
そして、彼ら自身のリストに日付をポップすること(これは究極の目的です)も役に立ちません。ループまたはapply関数を使用してこれを回避する方法を考えることができますが、おそらくかなり一般的な要件に対して、より簡単な方法が必要であるように思われます。簡単なことをもう一度見落としたのでしょうか。
Q:日付のリストの1つと値が一致する日付列を持つデータフレームの行をサブセット化するにはどうすればよいですか?