数据价值-DataValues

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1306|回复: 0

[R语言] R if循环里老是missing value where TRUE/FALSE needed

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
39797
发表于 2017-3-15 15:28:15 | 显示全部楼层 |阅读模式
R if循环里老是missing value where TRUE/FALSE needed,
我就试试一下简单的函数
create
{
layer
layer2
   for(c in 1:x)
  {
    for(r in 1:y)
   {
      if(layer[c,r]==0)
     {
       nl
       nl[c,r]
       writeRaster(nl, “cloud.tif”)
     }
     else
     { layer[c,r]=layer2[c,r]}
   }
  }
}create(10,10)

但一运行就显示Error in if (layer[c, r] == 0) { : missing value where TRUE/FALSE needed,,
这个函数只传入了两个参数x,y
那么layer ,
setwd(“E:/Landsat-data-NASA atm-corrected/sample_day1”)
restdir2 ,
你首先要测试的是下面这段有没有问题,然后在封装成函数
x=10;y=10;
layer  a=NA;if(a==0){}
Error in if (a == 0) { : missing value where TRUE/FALSE needed,,
·你好 我现在是想处理两张地图
这两张地图属于同一区域 坐标都一样
不同的是 第一张地图显示云彩 第二张没有
在第一张地图 pixel值为0的grid代表有云彩
现在我要做的是写一个function来找到第一章图内pixel值为0的grid的坐标(行数,列数)
然后在第二张图内相同坐标的grid值改为NA
所以我想写一个if loop来检测
但是我发现if loop一旦测到不为0的值就会报错
请问有其他办法不用if while loop来查找值为0的grid坐标的方法吗
谢谢,,
我不是很清楚你要做的全部内容,但我能给你写一个示例:查找所有等于0的数据的坐标,如下,
> x  x
x1 x2
1  0  0
2 NA NA
3  1 NA
4  2  2
5  3  0
6  4  4
7  0  0
8  5  5
> # 将x按列转换为向量,找到所有值为0的序号
> list  list
[1]  1  7  9 13 15
> # 所有值为0的序号转换为横纵坐标
> axes  axes
x y
[1,] 1 1
[2,] 7 1
[3,] 1 2
[4,] 5 2
[5,] 7 2
> #检验这些坐标代表的数据值是否为0
> x[axes]
[1] 0 0 0 0 0,
转载请注明:数据分析 » R if循环里老是missing value where TRUE/FALSE needed
回复

使用道具 举报

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

本版积分规则

小黑屋|Archiver|手机版|DataValues ( 赣ICP备16006919号-3 点击这里给我发消息 DataValues

GMT+8, 2019-2-17 14:42 , Processed in 0.114391 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表