2015-12-04 51 views
0

取決於值的列我有我已經使用發生變異()函數將數據保存在單獨的列中作爲有一種方法,以行轉換爲基於R

試圖被裝載到一個數據幀作爲

unitid date_time  sensor sample 
b0a25 10/1/2015 5:34 1  0 
b0a25 10/1/2015 5:34 3  0 
b0a25 10/1/2015 5:34 6  22 
b0a25 10/1/2015 5:34 7  35 
b0a25 10/1/2015 5:35 1  0 
b0a25 10/1/2015 5:35 3  0 
b0a25 10/1/2015 5:35 6  22 
b0a25 10/1/2015 5:35 7  35 
b0a25 10/1/2015 5:36 1  0 
b0a25 10/1/2015 5:36 3  0 
b0a25 10/1/2015 5:36 6  37 
b0a25 10/1/2015 5:36 7  56 

數據

df<- group_by(data1, unitid) %>% 
arrange(datee_time) %>% 
mutate(sensor1 = lag(sensor,1), sensor3 = lag(sensor,3),sensor6 = lag(sensor,6),sensor7 = lag(sensor,7))%>% 
group_by(unitid, sample_time_conv) 

上午走出把儘可能

unitid date_time  sensor sample sensor1 sensor3 sensor7 sensor9 
b0a25 10/1/2015 5:34 1  0  7  3  6  3 
b0a25 10/1/2015 5:34 3  0  1  6  7  6 
b0a25 10/1/2015 5:34 6  22  3  7  1  7 
b0a25 10/1/2015 5:34 7  35  6  1  3  1 

等。這是不正確的。

預期的輸出應提前

unitid date_time  sensor1 sensor3 sensor6 sensor7 
b0a25 10/1/2015 5:34 0  0  22  35 
b0a25 10/1/2015 5:35 0  0  22  35 
b0a25 10/1/2015 5:36 0  0  37  56 

感謝。

+0

看看'?reshape'。 – nicola

+0

既然你顯然是哈德利教會的門徒,你應該看看重塑2或tidyr包。 – Roland

+0

那麼你的專欄究竟是什麼?我的意思是你想轉換嗎?或者是其他東西 ? –

回答

0

這可以通過擴散函數在tidyr

df %>% mutate(sensor=paste("sensor",sensor)) %>% spread(sensor,sample) 
0

這可以使用重塑來完成()來完成,如下溶液

samplereshape<-reshape(data1,v.names="sample",idvar="date_time",timevar="sensor",direction="wide") 

通過使用colnames重命名的列。

相關問題