【问题标题】:Interpolation with Gnu R使用 Gnu R 进行插值
【发布时间】:2015-10-08 20:52:52
【问题描述】:

我这辈子都没有这样做过,但是是否可以使用 Gnu R 从给定的斜率/图形中提取任意数量的点?更准确地说,我可以告诉 Gnu R 在给定数据旁边给我 400 分吗(甚至不称为插值)?假设您有以下数据:

dput(df1)
structure(list(census = structure(c(-281037, -253644, -244513, 
-231730, -228077, -217120, -209815, -207989, -191553, -180596, 
-171465, -129462, -98416, -90381, -80154, -71388, -61892, -33768, 
4582, 11887, 15540), class = "Date"), pop_hist = c(0, 30, 1000, 
2000, 3000, 4100, 3900, 4100, 3900, 4000, 4100, 4000, 4030, 4080, 
2000, 1500, 1050, 111, 1936, 3791, 5167)), .Names = c("census", 
"pop_hist"), row.names = c(NA, -21L), class = "data.frame")

以及图形输出

编辑: 我有来自library(pracma) 的这个命令:

interp1(x=as.numeric(census),y=as.numeric(pop_hist),xi=as.numeric(census),method="nearest")

但是我怎么能告诉 R 给我大约 400 分呢?

【问题讨论】:

  • 也许可以试试approxfun
  • 线性或多项式插值通过您指定的点 - 平滑器(例如黄土、样条)将尝试创建“接近”但不一定完全通过点的平滑曲线您指定。
  • 感谢您的快速回复。请注意我刚刚在我的问题中所做的编辑。

标签: r function plot interpolation


【解决方案1】:

答案是,谢谢wdkrnls

library(ggplot2)

test <- approx(x=as.numeric(census),y=as.numeric(pop_hist),n=474,method="linear")
ggplot(test,aes(y=y,x=x)) + geom_line()

【讨论】:

    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多