2017-07-24 3 views
0

データセットを解析する際に問題があります。R統計ソフトウェアによる時系列解析

​​3210

は、上記の私のデータset.I内の1つの列が(強調表示されます)日付と時刻を抽出し、それを使用して新しい列を作成したいです。

私は次のコードを試してみました: - 正しくはなく、()このコードから

sms <- sms %>% 
    mutate(date =str_extract_all(data , "[0-9]+\\-")) 

を、私は分離された日付を得ました。

sms <- sms %>% 
    mutate(time =str_extract_all(data , "[0-9]+\\:")) 

これ以降、私は時間を得ました。

次に、以下のRコードを使用して、逆のカンマを削除しました。

del <- colwise(function(sms) str_replace_all(sms, '\"', "")) 
sms <- del(sms) 

最後に、このように見えます。

786650417, 3197478917, 264665794, 2016-12-01T00:00:00Z, 1, 4, 94717580778 

上記の2つの列を作成しました。これら2行は以下の通りです。

date     time 
c(2016-, 12-)  c(00:, 00:) 

しかし、現在、日付と時刻が正しい形式でないため、予測方法を実行できません。

このレコードから正しいタイプの日付と時刻を抽出してください。

786650417, 3197478917, 264665794, 2016-12-01T00:00:00Z, 1, 4, 94717580778 

私のデータセットには、このような200万レコードがあります。

答えて

0

のは、これを試してみましょう -

library(stringr) 
library(chron) 
df <- data.frame(raw_data=c("786650417,3197478917,264665794,2016-12-01T00:00:00Z,1,4,94717580778", 
          "786650417,3197478917,264665794,2016-12-01T00:02:17Z,1,4,94717580778", 
          "786650417,3197478917,264665794,2016-12-01T00:28:10Z,1,4,94717580778")) 
df$date <- as.Date(str_extract(df$raw_data, "\\d{4}-\\d{2}-\\d{2}")) 
df$time <- chron(times=str_extract(df$raw_data, "\\d{2}:\\d{2}:\\d{2}")) 
df$datetime <- strptime(paste(str_extract(df$raw_data, "\\d{4}-\\d{2}-\\d{2}"), str_extract(df$raw_data, "\\d{2}:\\d{2}:\\d{2}"), sep = " "), format="%Y-%m-%d %H:%M:%S") 
df 

注:あなただけstrptime()例えば、1つの以上のパラメータを与える必要がDATA-時間は、収集の実際のタイムゾーンごとにフォーマットすることができますtz = "GMT"タイムスタンプがGMT形式である場合、デフォルトでローカルシステムのタイムゾーンが選択されます(この場合はISTです)。


それが正しい答えとしてそれをマークすることによって、あなたの問題を解決した場合はお知らせすることを忘れないでください:)

+0

こんにちはバディ私はあなたの助言に従って行った。上記のレコードの場合、日付は "2016-12-01 IST"として生成されます。これは本当にクールです。しかし、これをすべてのレコード(200万)にどのようにして、そのデータを使用して新しい列を作成することができますか? &&&&&私はあなたがその時に言ったことを得ていない。日付のように時間をフィルタリングする方法。実際、私はあなたをサポートしてくれて本当に感謝しています。 –

+0

元の質問を更新して、目的のサンプルo/p形式を表示してください。 – Prem

+0

[1]「2016-12-01 00:00:00 IST」「2016-12-01 00:02:17 IST」「2016-12-01 00:28:10 IST」「2016-12-01 01 :17:02 IST "[5]" 2016-12-01 00:00:30 IST "" 2016-12-01 00:06:17 IST "これは、最初の6つのレコードに対してメソッドを適用した後のものです。これはかなりうまくいっています。&&今私はこれを私の全データセットに行うことができます。それはオッケーです。次のことは、各列の日付と時刻を入れた2つの新しい列を作成することです。 –

0

は、私はあなたが変数に抽出する2つの列を割り当てることができると思います。(あなたのケース内の列が)あなたが考慮したいラベル正確に

A <- nameOfYourSet$date 

B <- nameOfYOurSet$time 

使用$

次にあなたが欲しいものを得るために、いくつかの連結を行うためにcbind()機能を使用しよう:

cbind(A,B)Aの右側にBを「ペースト」します。

最後に、機能を使用して、予測を実行するために必要な適切なフォーマットを取得します(必要なフォーマットがわかりません)。

+0

はあなたに非常に多くの仲間をありがとうございました。この方法は私のために働いていませんでした。 –