Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.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
从lattice和r中的densityplot提取数据_R_Extract_Histogram_Lattice_Kernel Density - Fatal编程技术网

从lattice和r中的densityplot提取数据

从lattice和r中的densityplot提取数据,r,extract,histogram,lattice,kernel-density,R,Extract,Histogram,Lattice,Kernel Density,在R和Lattice中,我试图按年份提取直方图和densityplot数据,供其他程序使用。到目前为止,我已经完成了直方图部分的工作: library(lattice) x <- round(runif(1000, 1999.5, 2012.5)) y <- rlnorm(1000, meanlog = log(40000), sdlog = log(40000) - log(33000)) data <- data.frame(cbind(x,y)) data$y <

在R和Lattice中,我试图按年份提取直方图和densityplot数据,供其他程序使用。到目前为止,我已经完成了直方图部分的工作:

library(lattice)

x <- round(runif(1000, 1999.5, 2012.5))
y <- rlnorm(1000, meanlog = log(40000), sdlog = log(40000) - log(33000)) 
data <- data.frame(cbind(x,y))
data$y <- data$y + 2000*(data$x-2000)

GenerateBinComputations <- function(x, breaks, equal.widths=TRUE, type="percent", nint,...) { hist(x, breaks = breaks, plot = FALSE) }

a <- histogram(~data$y | data$x, type="percent", nint=101, endpoints=c(-500, 100500), equal.widths = TRUE)
results <- data.frame(seq(0, 100000, 1000))
colnames(results)[1] <- "Midpoint"
for (index in 1:13) {
    b <- trellis.panelArgs(a, index)
    b$breaks <- seq(-500, 100500, by=1000)
    c <- do.call(GenerateBinComputations, b)
    results <- cbind(results, c$density)
    colnames(results)[index+1] <- index + 1999
}

print(results)
库(晶格)

请努力使您的示例可复制且最小化(或至少提供您所拥有和想要的图像)!!请记住--我们没有您的
数据
,这使得上面的代码很难理解…啊,这个网站是新手,现在我知道为什么每个人在示例代码的开头都有randint/uniform/lognormal行。这更像是吗?我很感谢你为大大改进这个问题所做的工作。谢谢你!我自己没有时间深入研究这个问题,但如果我深入研究了,我会先在
面板.densityplot
中检查代码。它似乎“在运行中”执行密度计算,以便在打印后不会将其存储在任何位置。您可以在
面板.densityplot
中建模自己的
density()
调用,或者(更高级但不一定更好)插入调试代码,在计算完
h
后立即报告其值。祝你好运!
d <- densityplot(~data$y | data$x, type="percent", nint=101, endpoints=c(-500, 100500))
density.estimate      <- density(data$y, n = 512 * 8)
density.interpolation <- approxfun(x = density.estimate$x, y = density.estimate$y)
density.results       <- within(data, Density <- density.interpolation(y))