Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 指定emmeans输出范围到单个因子级别范围_R_List_Ggplot2_Emmeans - Fatal编程技术网

R 指定emmeans输出范围到单个因子级别范围

R 指定emmeans输出范围到单个因子级别范围,r,list,ggplot2,emmeans,R,List,Ggplot2,Emmeans,我正在尝试使用emmeans的输出创建一个图形,绘制一个因子的5个级别的线。我希望每个功能区的范围对应于该级别所在的x轴上的数据范围,而不是整个x轴上的数据范围。i、 e.一些因素只有x轴特定范围的数据,我不想推断出这些范围之外的数据 在整个范围内外推的当前代码为: newdata=emmeans(model, ~x|factor, at=list(factor=levels(data$factor), x=seq(min(data$x), max(data$x), len=100)), typ

我正在尝试使用emmeans的输出创建一个图形,绘制一个因子的5个级别的线。我希望每个功能区的范围对应于该级别所在的x轴上的数据范围,而不是整个x轴上的数据范围。i、 e.一些因素只有x轴特定范围的数据,我不想推断出这些范围之外的数据

在整个范围内外推的当前代码为:

newdata=emmeans(model, ~x|factor, at=list(factor=levels(data$factor), x=seq(min(data$x), max(data$x), len=100)), type='response') %>% as.data.frame

figure=ggplot(data, aes(y=y, x=x, color=factor, fill=factor))+
  geom_ribbon(data=newdata, aes(x=x, y=response,ymin=lower.CL, ymax=upper.CL), alpha=0.3, colour = NA)+
   geom_line(data=newdata, aes(x=x, y=response))
   
figure

此后,我找到了一个庞大的解决方案:

#Build dataframes with max and min for each factor
factorvariable.1 <- c("factorvariable.1")
data.factorvariable.1=filter(data, factor %in% factorvariable.1)
factorvariable.1.range=range(data.factorvariable.1$x)%>% as.data.frame
factorvariable.1.range$factor=factorvariable.1
factorvariable.1.range$min.max=c('min','max')

factorvariable.2 <- c("factorvariable.2")
data.factorvariable.2=filter(data, factor %in% factorvariable.2)
factorvariable.2.range=range(data.factorvariable.2$x)%>% as.data.frame
factorvariable.2.range$factor=factorvariable.2
factorvariable.2.range$min.max=c('min','max')

Range=rbind(factorvariable.1.range,factorvariable.2.range)

Range <- spread(Range, min.max, .)

#使用每个因子的最大值和最小值构建数据帧
因子可变。1%为.data.frame
factorvariable.1.范围$factor=factorvariable.1
系数可变。1.范围$min.max=c('min','max'))
因子可变。2%为.data.frame
factorvariable.2.范围$factor=factorvariable.2
系数可变。2.范围$min.max=c('min','max'))
Range=rbind(factorvariable.1.范围,factorvariable.2.范围)
范围%as.data.frame
newdata=merge(newdata,Range,by=“factor”)
newdata=newdata%>%过滤器(x>min)

newdata=newdata%>%filter(xI发现了一个庞大的解决方案:

#Build dataframes with max and min for each factor
factorvariable.1 <- c("factorvariable.1")
data.factorvariable.1=filter(data, factor %in% factorvariable.1)
factorvariable.1.range=range(data.factorvariable.1$x)%>% as.data.frame
factorvariable.1.range$factor=factorvariable.1
factorvariable.1.range$min.max=c('min','max')

factorvariable.2 <- c("factorvariable.2")
data.factorvariable.2=filter(data, factor %in% factorvariable.2)
factorvariable.2.range=range(data.factorvariable.2$x)%>% as.data.frame
factorvariable.2.range$factor=factorvariable.2
factorvariable.2.range$min.max=c('min','max')

Range=rbind(factorvariable.1.range,factorvariable.2.range)

Range <- spread(Range, min.max, .)

#使用每个因子的最大值和最小值构建数据帧
因子可变。1%为.data.frame
factorvariable.1.范围$factor=factorvariable.1
系数可变。1.范围$min.max=c('min','max'))
因子可变。2%为.data.frame
factorvariable.2.范围$factor=factorvariable.2
系数可变。2.范围$min.max=c('min','max'))
Range=rbind(factorvariable.1.范围,factorvariable.2.范围)
范围%as.data.frame
newdata=merge(newdata,Range,by=“factor”)
newdata=newdata%>%过滤器(x>min)
newdata=newdata%>%过滤器(x