2

1つの列がフォームの日付である(意図された)データフレームがあります00:00:00.0 yyyy-mm-dd。ほとんどのエントリはそうですが、そうでないものもあります。日付以外を含む行を削除する方法はありますか? のようなもの(列が「DATE」の場合)

data <- data[is.Date(DATE)==TRUE,]

例えば。

Fruit  Date
apple  00:00:00.0 2005-02-01
pear   00:00:00.0 2006-02-01
orange 00:00:00.0 -8-2-402145
rhino  00:00:00.0 2003-04-21

私が欲しい

Fruit  Date
apple  00:00:00.0 2005-02-01
pear   00:00:00.0 2006-02-01
rhino  00:00:00.0 2003-04-21
4

1 に答える 1

3

ジョランの推論に続いて:

# get the test data
test <- data.frame(
    Fruit=c("apple","pear","orange","rhino"),
    Date=c("00:00:00.0 2005-02-01",
           "00:00:00.0 2006-02-01",
           "00:00:00.0 -8-2-402145",
           "00:00:00.0 2003-04-21")
)

# remove the rows by checking if not (!) an NA due to not meeting the date format
test[!is.na(strptime(test$Date,format="00:00:00.0 %Y-%m-%d")),]

結果:

  Fruit                  Date
1 apple 00:00:00.0 2005-02-01
2  pear 00:00:00.0 2006-02-01
4 rhino 00:00:00.0 2003-04-21
于 2012-10-04T01:30:06.477 に答える