gpt4 book ai didi

r - 删除具有负值的行

转载 作者:行者123 更新时间:2023-12-04 10:57:52 25 4
gpt4 key购买 nike

在 R 中,我试图删除数据框( Ant )中的列标题浊度下具有负值的行。我试过了

ants<-ants[ants$Turbidity<0,]

但它返回以下错误:

Warning message:
In Ops.factor(ants$Turbidity, 0) : < not meaningful for factors

知道这是为什么吗?也许我需要做负值NA 然后删除所有 NA?

非常感谢任何想法,谢谢!

@Joris:结果是

str(ants$Turbidity)

num [1:291] 0 0 -0.1 -0.2 -0.2 -0.5 0.1 -0.4 0 -0.2 ...

最佳答案

Marek 是对的,这是一个数据问题。现在,如果您使用 [as.numeric(ants$Turbidity] ,请小心,因为它始终为正数。它给出因子水平(1 到长度(ants$Turbidity)),而不是数字因子。

试试这个:

tt <- as.numeric(as.character(ants$Turbidity))
which(!is.na(tt))

它会给你一个索引列表,其中的值首先不是数字。这应该使您能够首先清理数据。

例如:

> Turbidity <- factor(c(1,2,3,4,5,6,7,8,9,0,"a"))
> tt <- as.numeric(as.character(Turbidity))
Warning message:
NAs introduced by coercion
> which(is.na(tt))
[1] 11

您不应该使用 as.numeric(as.character(...)) 结构来转换有问题的数据,因为它会生成 NA,从而与其他数据混淆。例如:

> Turbidity[tt > 5]
[1] 6 7 8 9 <NA>
Levels: 0 1 2 3 4 5 6 7 8 9 a

关于r - 删除具有负值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4213943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com