楼主: hmzzz
11442 5

[程序分享] 逻辑判断中NA的处理 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1份资源

硕士生

58%

还不是VIP/贵宾

-

威望
0
论坛币
695 个
通用积分
2.0003
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
2051 点
帖子
136
精华
0
在线时间
148 小时
注册时间
2013-4-6
最后登录
2021-8-17

楼主
hmzzz 发表于 2016-1-14 21:02:47 |AI写论文
20论坛币
我又来问大家了,我写了一个函数,判断向量x的各个分量的符号,但分量中可能含有NA。我希望NA就返回NA好了。

但我写的if else识别不了,错误提示是:要TRUE/FALSE值的地方不可以用缺少值

怎么办呢?谢谢

f.try=function(x){

tmp1=c(999)

for(i in 1:length(x)){

if(x>0){tmp1=c(tmp1,1)}else{if(x<=0){tmp1=c(tmp1,0)}else{tmp1=c(tmp1,NA)}};tmp1};

tmp1}

这是我写的

谢谢各位

如果多人想出了多种办法,也会有奖励!

最佳答案

关键词:function length else leng 错误提示 判断 缺省值

沙发
cheetahfly 在职认证  发表于 2016-1-14 21:02:48
f.try <- function(x){
  tmp1 <- c(999)
  for(i in x){
    if(is.na(i))
      tmp1 <- c(tmp1, NA)
    else if(i > 0)
      tmp1 <- c(tmp1,1)
    else
      tmp1 <- c(tmp1,0)
  }
  tmp1
}


不过,应该不用这么麻烦
c(999, ifelse(x>0,1,0))  就可以

藤椅
swyggq 发表于 2016-5-20 14:07:11
R有个函数,叫is.na

板凳
swyggq 发表于 2016-5-20 14:09:26
另外,系统内置有函数的:
> sign(1)
[1] 1
> sign(-1)
[1] -1
> sign(0)
[1] 0
> sign(NA)
[1] NA
> sign(3)
[1] 1
> sign(-3)
[1] -1
> sign(1e-100)
[1] 1
> sign(1e-1000)
[1] 0
> sign(NA)
[1] NA
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
hmzzz + 1 + 1 + 1 好的意见建议

总评分: 论坛币 + 1  学术水平 + 1  热心指数 + 1   查看全部评分

报纸
hmzzz 发表于 2016-5-20 23:17:25
swyggq 发表于 2016-5-20 14:07
R有个函数,叫is.na
谢谢您,我已经解决啦,就是用这个

地板
hmzzz 发表于 2016-5-20 23:17:55
swyggq 发表于 2016-5-20 14:09
另外,系统内置有函数的:
> sign(1)
[1] 1
哇,打开了新世界的大门

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

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