2017-05-24 18 views
0

逗人值根據時間戳的結束,的R - 找到並開始與另一列

我牛逼一個R編程,基於這個原因,我來這裏向你求助。我試圖找出解決這個問題的方法。我一直在努力但沒有成功。

我有類似的data.frame ...

df2 <- data.frame(Recordig = c("Rec1", "Rec1", "Rec1", "Rec1", "Rec1", "Rec1", 
           "Rec2","Rec2","Rec2","Rec2","Rec2","Rec2"), 
        MediaName = c("Imagem1","Imagem1","Imagem1", 
           "Estimulo1","Estimulo1","Estimulo1", 
           "Imagem1","Imagem1","Imagem1", 
           "Estimulo1","Estimulo1","Estimulo1"), 
        Timestamp = c(4975 , 5155 , 5312 ,25076, 25463 ,26040 , 5035 , 5248, 5551, 17047 , 17263, 17533)) 

下面

Recordig MediaName Timestamp 
1  Rec1 Imagem1  4975 
2  Rec1 Imagem1  5155 
3  Rec1 Imagem1  5312 
4  Rec1 Estimulo1  25076 
5  Rec1 Estimulo1  25463 
6  Rec1 Estimulo1  26040 
7  Rec2 Imagem1  5035 
8  Rec2 Imagem1  5248 
9  Rec2 Imagem1  5551 
10  Rec2 Estimulo1  17047 
11  Rec2 Estimulo1  17263 
12  Rec2 Estimulo1  17533 

什麼是我的觀點的簡化版本?我需要確切知道參與者(例如Rec1)花費多少時間查看每個圖像(圖像1)。在這種情況下,Image1的時間戳開始於4.975s,結束於5.312s,給出333ms

問題是,我有數百個圖像和數千名觀察圖像的時間不同的受訪者。

有沒有人有一些想法來幫助我?

+0

是什麼你的期望結果?你想要想象這種差異還是有一個你想測試的特定假設? –

+0

嗨@AdamQuek非常感謝您的關注。 akrun和ikop已經提供瞭解決方案,但是我非常感謝您的處置 –

回答

0

你可以找到的第一個和最後一個時間戳的差別使用dplyr包每個參與者(Recordig)和圖像(MediaName):

library(dplyr) 
df3 <- df2 %>% 
     dplyr::group_by(Recordig, MediaName) %>% 
     dplyr::summarise(duration = diff(range(Timestamp))) 

df3 
# Source: local data frame [4 x 3] 
# Groups: Recordig [?] 
# 
# Recordig MediaName duration 
#  <fctr> <fctr> <dbl> 
# 1  Rec1 Estimulo1  964 
# 2  Rec1 Imagem1  337 
# 3  Rec2 Estimulo1  486 
# 4  Rec2 Imagem1  516 
+0

Hi @ikop,非常感謝您的幫助! –

0

我們可以使用base R

aggregate(cbind(duration = Timestamp) ~Recordig + MediaName, df2, 
       FUN = function(x) diff(range(x))) 
# Recordig MediaName duration 
#1  Rec1 Estimulo1  964 
#2  Rec2 Estimulo1  486 
#3  Rec1 Imagem1  337 
#4  Rec2 Imagem1  516 
+1

嗨@akrun,非常感謝您的幫助。我會更仔細地研究這個函數的屬性。週末愉快! –

+0

@FabioAlvesCarvalho謝謝您的評論。祝您有個愉快的一週! – akrun