我需要平滑一些模拟数据,但是当要平滑的模拟纵坐标几乎是相同的值时,偶尔会遇到问题.这是最简单案例的一个可重复的小例子.
> x <- 0:50
> y <- rep(0,51)
> loess.smooth(x,y)
Error in simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = FALSE, :
NA/NaN/Inf in foreign function call (arg 1)
Run Code Online (Sandbox Code Playgroud)
loess(y~x)
,lowess(x,y)
和它们在MATLAB中的模拟产生了预期的结果,在这个例子中没有错误.我在loess.smooth
这里使用是因为我需要在一定数量的点上评估估算值.根据文档,我相信loess.smooth
并且loess
正在使用相同的估计函数,但前者是处理评估点的"辅助函数".该错误似乎来自C函数:
> traceback()
3: .C(R_loess_raw, as.double(pseudovalues), as.double(x), as.double(weights),
as.double(weights), as.integer(D), as.integer(N), as.double(span),
as.integer(degree), as.integer(nonparametric), as.integer(order.drop.sqr),
as.integer(sum.drop.sqr), as.double(span * cell), as.character(surf.stat),
temp = double(N), parameter = integer(7), a = integer(max.kd),
xi = double(max.kd), vert = double(2 * D), vval = double((D …
Run Code Online (Sandbox Code Playgroud) 我有一个ggplot2
奇数个刻面的线图.我想在空白处添加一个x值边缘分布的箱线图.箱线图应该是水平的,并与其他刻面共享一个共同的x轴.由于默认的boxplot geom是垂直的,因此coord_flip()
是必需的.因此,我认为不可能将boxplot数据包含在与使用虚拟因子变量进行分面的其他方面相同的df中.
使用grid
,我可以识别空视口并插入箱图,但我希望x轴排成一行.类似问题的答案(见这里或这里)建议align_plots
在ggExtra
包装中使用,但我不认为这将与分面合作.我在下面列出了一个简单的可重现的例子.如果我这样做,我还必须编辑空面板Grob以创建一个与其他面相匹配的新标签.任何建议,将不胜感激.
library(ggplot2)
#generate df for faceted line graphs
df <- data.frame(x = rep(1:100, times=7),
facet_var = as.factor(rep( 1:7, each=100)),
y = runif(7*100)
)
#create faceted line graphs
p <- ggplot(data = df, aes(x, y)) +
geom_line() + facet_wrap( ~ facet_var, ncol=2)
#generate df for boxplot
xdata <- runif(1000, min = 0, max = 100)
boxdf <- data.frame(x=xdata, group=rep(1,length(xdata)))
#create boxplot removing axes and margins …
Run Code Online (Sandbox Code Playgroud)