Как преобразовать информацию о ячейках диапазона в отдельные ячейки? - PullRequest
3 голосов
/ 23 июня 2019

Я провожу эксперимент по отслеживанию глаз, пытаясь определить распределение фиксации по двум областям (области интереса, AOI, называемые «агент» и «пациент») в течение времени.Я разделил все время на временные интервалы и получил, например, следующий список:

Stimulus   Participant   AOI name   Start_bin    End_bin   span.bin
E19AP          P01         Patient      2           6          5
E19AP          P01         Agent        10          14         5
E19AP          P01         Agent        14          22         9
E19AP          P01         Agent        24          30         7
...

Чтобы завершить анализ, мне нужно разделить span.bin на отдельные элементы, как показано ниже:

Stimulus   Participant   AOI name     bin
E19AP          P01         Patient     2
E19AP          P01         Patient     3
E19AP          P01         Patient     4
E19AP          P01         Patient     5
E19AP          P01         Patient     6
E19AP          P01         agent       10
E19AP          P01         agent       11
E19AP          P01         agent       12
E19AP          P01         agent       13
E19AP          P01         agent       14
...

Это означает, что каждая строка является ячейкой.Есть предложения или идеи как решить проблему с R?

1 Ответ

0 голосов
/ 23 июня 2019

Мы можем использовать mapply для получения последовательности бинов, а затем unnest из tidyverse для завершения фрейма данных.Последняя строка просто отбрасывает столбцы Start_Bin и End_Bin, если хотите.

library(tidyverse)

Stimulus <- c("E19AP","E19AP","E19AP","E19AP","E19AP")
Participant <- c("P01","P01","P01","P01","P01")
AOI_Name <- c("patient","agent","agent","agent","agent")
Start_Bin <- c(2,10,14,24,31)
End_Bin <- c(6,14,22,30,33)
span.Bin <- c(5,5,9,7,3)
df <- data.frame(Stimulus,Participant,AOI_Name,Start_Bin,End_Bin)

df$Bin <- mapply(":",df$Start_Bin,df$End_Bin)
df <- unnest(df,Bin)
df <- df[,-c(4,5,6)]

> df[1:10,]

   Stimulus Participant AOI_Name Bin
1     E19AP         P01  patient   2
2     E19AP         P01  patient   3
3     E19AP         P01  patient   4
4     E19AP         P01  patient   5
5     E19AP         P01  patient   6
6     E19AP         P01    agent  10
7     E19AP         P01    agent  11
8     E19AP         P01    agent  12
9     E19AP         P01    agent  13
10    E19AP         P01    agent  14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...