2017-08-16 13 views
-2

私は以下のようなデータフレームを持っています。データフレームの行を列に変換するR

私はそれがこのように変換する必要がある
Date   Time  Object_Name Object_Value 
7/28/2017 8:00  A1    58.56 
7/28/2017 8:00  A2    51.66 
. 
. 
. 
7/28/2017 8:30  A1    60.2 
7/28/2017 8:30  A2    65.2 

Date   Time  A1  A2 
7/28/2017 8:00  58.5  51.6 
7/28/2017 8:30  60.2  65.2 

答えて

0

場合も、上記の作品をコメントに対処するために、また

library(tidyr) 
spread(df, Object_Name, Object_Value) 
     Date Time A1 A2 
1 7/28/2017 8:00 58.56 51.66 
2 7/28/2017 8:30 60.20 65.20 

library(reshape2) 
df 
     Date Time Object_Name Object_Value 
1 7/28/2017 8:00   A1  58.56 
2 7/28/2017 8:00   A2  51.66 
3 7/28/2017 8:30   A1  60.20 
4 7/28/2017 8:30   A2  65.20 

dcast(df, Date + Time ~ Object_Name) 

     Date Time A1 A2 
1 7/28/2017 8:00 58.56 51.66 
2 7/28/2017 8:30 60.20 65.20 

をお試しください独自のケースがあります。最初の2行で

df 
     Date Time Object_Name Object_Value 
1 7/28/2017 8:00   A1  58.56 
2 7/28/2017 8:00   A1  50.00 
3 7/28/2017 8:00   A2  51.66 
4 7/28/2017 8:30   A1  60.20 
5 7/28/2017 8:30   A2  65.20 

ルックを、あなたは同じ日付、時刻、およびobject_nameのために、我々は2つの値を持っていることを見ることができます。例えば次のことを考慮してください。これは、dcastが何をすべきかを知らず、次の警告を与えることを意味します:Aggregation function missing: defaulting to length。集計関数を指定することでこれを処理できます。たとえば、のは、これらの値の平均をみましょう:

dcast(df, Date + Time ~ Object_Name, fun.aggregate = mean) 
     Date Time A1 A2 
1 7/28/2017 8:00 54.28 51.66 
2 7/28/2017 8:30 60.20 65.20 
+0

私は0と1のような値を取得しています、私は明示的にOBJECT_VALUEに指定する必要がありますか? – Anagha

+0

警告:集計機能がありません:デフォルトは長さです。そしてすべての値は0と1です – Anagha

+0

downvoteerはdownvoteを説明できますか? – coffeinjunky

関連する問題