楼主: Ning_1
2990 3

[问答] R语言插值的问题,不知道代码错在哪了,求助! [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

22%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
186 点
帖子
21
精华
0
在线时间
6 小时
注册时间
2015-11-14
最后登录
2016-3-17

楼主
Ning_1 发表于 2016-3-15 10:34:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我现在有一个720*1440的矩阵(里面包含一些NA),我想把这个矩阵插值成2880*5760的矩阵。矩阵的名字是old,新生成的矩阵名为newmat。用的代码如下:newmat<-apply(old,2,function(old, newx=5760, newy=2880)    interp.surface.grid(list(x=seq(nrow(old)),y=seq(ncol(old)),z=old),
                       list(x=seq(1,nrow(old),length=newx),
                            y=seq(1,ncol(old),length=newy)))$z)
之后报错:Error in seq.default(1, nrow(old), length = newx) :
  'to' must be of length 1
求各位大神指导应该怎么修改,本人刚刚学习R语言,插值代码是从同学那拷来的,如果不对请大神们告知应该怎么插值才是正确的,谢谢谢谢!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 不知道 EWMA Mat NEW

沙发
jiangbeilu 学生认证  发表于 2016-3-15 11:56:00
这个样子写代码,应该是不对的。你的nrow和ncol都没办法应用对象的。
因为你使用apply,对应的old就是原来old矩阵里的一列数。
看一下下面的代码,试着自己做一下:
  1. set.seed(2015)
  2. oldvec <- rnorm(720*1440)
  3. set.seed(2016)
  4. naind <- sample(1:(720*1440),300)
  5. oldvec[naind]<- NA
  6. # change the vector into matrix
  7. old <- matrix(oldvec,nrow=720,ncol=1440)
  8. # install.packages("fields")  #这个是我安装的包
  9. library(fields)

  10. obj <- list(x=seq(nrow(old)),y=seq(ncol(old)),z=old)
  11. grid.list<- list( x= seq( 1,nrow(old),,5760), y= seq( 1,ncol(old),,2880))
  12. newmat <- interp.surface.grid(obj,grid.list)
复制代码

藤椅
Ning_1 发表于 2016-3-15 19:18:28
jiangbeilu 发表于 2016-3-15 11:56
这个样子写代码,应该是不对的。你的nrow和ncol都没办法应用对象的。
因为你使用apply,对应的old就是原来 ...
谢谢!

板凳
疯疯癫癫的我们 发表于 2016-10-31 22:53:03
jiangbeilu 发表于 2016-3-15 11:56
这个样子写代码,应该是不对的。你的nrow和ncol都没办法应用对象的。
因为你使用apply,对应的old就是原来 ...
你好,能请教你一下用R进行克里金插值的程序吗?谢谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 17:03