2017-06-30 15 views
0

私は最近パイピングオペレータ%>%について学びました。私が取り組んでいるプロジェクトの一部に取り入れようとしています。パイプでas.Dateを使用しようとするとエラーが表示されます。私が使用したいものを通常R%での.Dateを使用しようとしたときのエラー%

numbers <- c(1, 2, 3, 4, 5) 
dates <- c("4/13/2017", "2/20/2017", "3/5/2017", "4/14/2017", "10/22/2017") 
df <- data.frame(numbers, dates) 
    numbers  dates 
1  1 4/13/2017 
2  2 2/20/2017 
3  3 3/5/2017 
4  4 4/14/2017 
5  5 10/22/2017 

です:

df %>% 
    as.Date(dates, "%m/%d/%Y") 
をしかし、エラーが表示されます。

df$dates <- as.Date(df$dates, "%m/%d/%Y") 

パイプでそれを使用しようとすると、私が試しましたメッセージ:

Error in as.Date.default(., dates, "%m/%d/%Y") : 
    do not know how to convert '.' to class “Date” 

私はパイピングオペレータにはまだよく慣れていないので、as.Dateはパイプで使用するコマンドではない可能性が非常に高いです。

おかげさまで、ご意見やご提案をありがとうございました!

答えて

5

私は配管オペレータにmutateを追加する必要があると思います。この場合、配管作業中にこの場合df$dates <- as.Date(df$dates, "%m/%d/%Y")

library(dplyr) 

numbers <- c(1, 2, 3, 4, 5) 
dates <- c("4/13/2017", "2/20/2017", "3/5/2017", "4/14/2017", "10/22/2017") 
df <- data.frame(numbers, dates) 

df %>% 
    mutate(dates=as.Date(dates, "%m/%d/%Y")) 
+0

働いたこと、感謝! この例では配管作業者がそれほど良くないといえます。私が取り組んでいるプロジェクトでは、パイプのas.Date以上のものを使用しています。 – Joe

0

単なるよりも良くある場合しかし、私はあなたが直接の列にアクセスすることができます%$%演算子を使用したいか分からない:

df %$% as.Date(dates, "%m/%d/%Y") 
# [1] "2017-04-13" "2017-02-20" "2017-03-05" "2017-04-14" "2017-10-22" 

それはwithを使用して、次の構文に似ています:

with(df,as.Date(dates, "%m/%d/%Y")) 
関連する問題