用正整数、负整数、NA 和空白计算向量中的数字

海港峰

说我有一个带有 pos 和 neg 整数以及 NA 和空白值的向量。我想运行一个循环来评估每个向量元素并返回它是什么类型的整数。这是一个例子

x <- c(-1, 1, NA, "")

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

  if (x[i] <= 0) {

    print("non-positive number")

  } else if (x[i] > 0) {

    print("positive")

  } else {

    print("not a number")

  }

}

上面的代码适用于整数,但当遇到 NA 和空白时,它不会打印“不是数字”

我可以修改我的条件,但为什么最后一个 else 条件不起作用。

有什么想法吗?

乔拉·西姆乔尼

您应该检查一个元素是否是NA第一个:

x <- c(-1, 1, NA, "", "abc", NULL, 1000.2, "1000.2")

for (i in x) {
  i_numeric <- tryCatch(as.numeric(i), warning = function(w) {})
  if (is.null(i_numeric) || is.na(i_numeric)) {
    print("not a number")
  } else if (i <= 0) {
    print("non-positive number")
  } else if (i > 0) {
    print("positive")
  } else {
    print("not a number")
  }
}

注意:

一种。您不需要遍历lengthof x

@Darren Tsai 的评论是正确的,您的x值是 R 中的字符:

"1" > 0
TRUE

但你应该意识到这一点。我已经编辑了我的答案,以包含奇怪的值,例如非空字符串和NULLs。

编辑:正如评论中所指出的,你不能真正NULL在 vector 中输入一个元素x,它不会被迭代。你可以如果x是一个列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用while循环计算负整数和正整数

正整数和负整数

如何在正整数和负整数之间进行匹配

熊猫排名为负整数和正整数,多列

生成唯一的正整数和负整数序列的排列

在列中基于正整数或负整数排序MySQL表

在包含正整数和负整数的向量中找到最小的缺失整数?

我正在尝试计算正整数和负整数中的小数位数

通过两个整数数组对正整数和负整数进行排序

在R中,如何对具有负整数和正整数的列进行行求和?

Python:从字符串中过滤正整数和负整数

为正整数和负整数、浮点数编写正则表达式

OWL:非负整数和正整数之间有什么区别?

正整数和负整数的正则表达式,并且仅减去 JS

如何将字符串仅拆分为正整数和负整数?

在一种java方法中找到负整数和正整数的乘积。答案是打印 0

如何区分二元决策图的正整数和负整数

整数对象身份测试:大正整数和小负整数之间的行为不一致

对python负十进制的模运算。十进制和正整数

在正整数和最大正整数之间打印倍数

速度模板中的正整数

计算矩阵中的负整数

如何在java中编写一个递归方法,它接受一个正整数或负整数并返回它所具有的位数

仅正整数的HTML输入(类型=数字)

为什么负整数比正整数多?

将正整数转换为负整数

在目标c中获得正整数值

在Java中打印正整数的问题

如何只获取数组中的正整数?