【发布时间】:2018-03-01 04:59:08
【问题描述】:
# works fine
check = c(1,2,3,4, Inf)
out = check[-which(check == Inf)]
print(out)
# [1] 1 2 3 4
# does not work fine
check = c(1,2,3,4)
out = check[-which(check == Inf)]
print(out)
# numeric(0)
第一个示例创建了一个具有正确值 1、2、3、4 的 out变量。第二个变量创建一个空变量out,因为 which 函数返回 integer(0) 并且显然从检查向量中删除 integer(0) 给出了 0 个元素。
我知道如何用几行来写这个,但是有一个单行吗?
【问题讨论】:
-
试试
check[ !is.na(check) ]?编辑后:check[ is.finite() ]? -
我把问题改成了 Inf。但这对 Inf 也适用,谢谢。你为什么不把它作为一个答案?
-
你也可以直接删除
which并写check[check != Inf]
标签: r