Развернуть dataframe показывает, что `x` не является обычной ошибкой последовательности - PullRequest
0 голосов
/ 13 марта 2019

У меня проблемы с расширением следующего фрейма данных.

library(tidyr)
library(dplyr)
options(digits = 10)
library(readxl)

Ниже приведен кадр данных

df1= data.frame("ID"=c("A", "A", "A", "A", 'A', "B", 'B', "B", "B", 'B'), 
"A_Frequency"=c(1,2,3,4,5, 2.788,3.122,4,4.888,6), 
"A_Axis"=c(1,2,3,4,5,6,7,8,9,12),
"B_Frequency"=c(2,3,4,6,7, 2.677, 2.977, 3.877, 4.788, 7), 
"B_Axis"=c(1,2,3,4,5,7,8,9,10,14))

Теперь создадим df2 следующим образом

df2<- df1 %>%group_by(ID) %>%rowwise() %>% mutate(Sfreq = 
 min(na.omit(c(A_Frequency, B_Frequency))))

Далее я расширяю фрейм данных следующим образом

df3<- df2%>%group_by(ID)%>%expand(Sfreq=full_seq(Sfreq,0.001))

Я получаю следующую ошибку

Ошибка: x не является регулярной последовательностью.

Я попытался изменить функцию расширения следующим образом

 df3<- df2%>%group_by(ID)%>%expand(Sfreq=full_seq(Sfreq,0.000001))

Однако это либо не работает, либо иногда замедляет код. Есть ли альтернативный способ добиться того же.

1 Ответ

1 голос
/ 13 марта 2019

На основании вашего описания вам нужно complete, а не expand. Обратите внимание, что сначала вам нужно ungroup ваш фрейм данных, так как он сгруппирован по строкам.

library(tidyverse)

ungroup(df2) %>% 
 group_by(ID) %>% 
 complete(Sfreq = seq(min(Sfreq), max(Sfreq), by = 0.001))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...