Поиск большой строки для нескольких экземпляров, если меньшая строка в r - PullRequest
1 голос
/ 24 июня 2019

В R я взял формат результатов испытаний в формате JSON и преобразовал их во фрейм данных из 14 переменных и 1101 записей.В этом тесте пользователь должен выбрать квадраты в определенном порядке для правильной оценки.В одной переменной «input» значения представляют собой длинные строки с информацией о том, какой квадрат был выбран, и о времени, которое потребовалось для выбора квадрата.
Пример:

"[{\"selectedSquare\":\"1\",\"tapTime\":\"00:00:00:06\"}, 
{\"selectedSquare\":\"0\",\"tapTime\":\"00:00:01:02\"}, 
{\"selectedSquare\":\"3\",\"tapTime\":\"00:00:02:00\"}, 
{\"selectedSquare\":\"2\",\"tapTime\":\"00:00:02:07\"}]"

Некоторые записи имеют больше, чем другиеу некоторых их нет.

Мне нужно найти в каждой записи квадрат выбранного ученика и вывести порядок в новый столбец.Используя приведенный выше пример: 1,0,3,2

Я пытался получить доступ к каждой записи по отдельности, чтобы протестировать функции при использовании df$input[1], но он возвращает коэффициент с 219 уровнями.Я не могу найти способ доступа только к соответствующей части входной записи.

1 Ответ

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

Вы можете сделать это с помощью соответствующего регулярного выражения.Попробуйте:

library(dplyr)
library(stringr)
pattern <- "(?<=\")\\d(?=\")" ## regular expression with look arounds
df$new.col <- sapply(df$input, function(x) {str_extract_all(x, pattern)[[1]] %>% paste(collapse = ",")})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...