【发布时间】:2017-11-05 12:27:34
【问题描述】:
在 R 中(我很新)我正在尝试创建一个 outlier_count 变量,其中一个整数表示每行异常值的数量。
所以,假设我的数据集看起来像这样,并假设“10”是一个异常值:
var1 var2 var3 var4 var5 var6 var7
a 1 1 10 10 1 1 1
b 10 1 1 1 1 1 1
c 1 1 1 1 1 1 1
d 1 1 1 1 1 1 1
e 1 1 1 1 1 1 1
f 1 1 1 1 1 1 1
我想得到类似的结果:
var1 var2 var3 var4 var5 var6 var7 outlier_count
a 1 1 10 10 1 1 1 2
b 10 1 1 1 1 1 1 1
c 1 1 1 1 1 1 1 0
d 1 1 1 1 1 1 1 0
e 1 1 1 1 1 1 1 0
f 1 1 1 1 1 1 1 0
因此,在每一行中,我都知道有多少值是异常值。
我尝试了几个函数,但当单列为 NA 时,变量最终为 NA。
有没有一种简单、防错的方法来做到这一点?
【问题讨论】:
-
如果你能为
df$var1提供一个最小的数据集,这样问题就可以重现,那么问题就更容易被发现了。 -
那些不是
"values per row",不管是否异常,df$var1是一列。 -
嗨!谢谢你俩。 @Heikki 我猜你可以使用任何你想要的数据集,比如
iris[sample(nrow(iris), 10), ](当然只使用数字变量)。 @RuiBarradas 是的,我想知道df$var1值是否是特定行的异常值,并将其值添加到同一行的outlier_count变量中。 -
数据样本
iris[sample(nrow(iris), 10), ]没有 NA。 -
@Heikki 是的,插入一些 NA 值很容易,但您也可以使用空气质量:
summary(airquality),Ozone 和 Solar.R 具有 NA 值。