展开数据框显示`x`不是常规序列错误

问题描述 投票:0回答:1

我无法扩展以下数据帧。

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))

但是,这要么不起作用,要么有时会降低代码速度。是否有另一种方法来实现同样的目标。

r dplyr tidyr expand
1个回答
1
投票

根据您的描述,您需要complete,而不是expand。请注意,您首先需要ungroup您的数据框,因为它是按行分组的。

library(tidyverse)

ungroup(df2) %>% 
 group_by(ID) %>% 
 complete(Sfreq = seq(min(Sfreq), max(Sfreq), by = 0.001))
© www.soinside.com 2019 - 2024. All rights reserved.