R编程-异常值检测循环

R编程-异常值检测循环,r,R,我正在尝试编写R代码,用于检测我的数据集中的异常值,以及从现有数据集中剪切并保存在另一个数据文件中的每个异常值行 我有一个包含25个变量的数据集“Dummy”,我想从这个数据集中删除离群值行,并将这些行保存到另一个数据文件中 我有以下用于检测异常值的R代码 library(outliers) for(i in 2:25) { outlier[i]=outlier(Dummy[i], logical=TRUE) find_outlier[i]=which(outlier[i]==TRUE,

我正在尝试编写R代码,用于检测我的数据集中的异常值,以及从现有数据集中剪切并保存在另一个数据文件中的每个异常值行

我有一个包含25个变量的数据集“Dummy”,我想从这个数据集中删除离群值行,并将这些行保存到另一个数据文件中

我有以下用于检测异常值的R代码

library(outliers)
for(i in 2:25)
{
  outlier[i]=outlier(Dummy[i], logical=TRUE)
  find_outlier[i]=which(outlier[i]==TRUE,arr.ind=TRUE)
  new_outlier[i]=Dummy[find_outlier[,i]]
}
当我为一个变量运行这个语法时,它可以正常工作,但当我将这些代码放入循环时,它就不工作了。重复循环中有问题吗


谢谢

执行此操作实际上不需要for循环

Student <- c("A", "B", "C", "D", "E")
Test1 <- c(45, 36, 41, 42, 15)
Test2 <- c(47, 42, 38, 34, 44)
Test3 <- c(39, 41, 35, 21, 48)
Test4 <- c(13, 45, 42, 35, 37)
Test5 <- c(36, 38, 42, 14, 47)
Dummy <- data.frame(Student, Test1, Test2, Test3, Test4, Test5)
out <- outlier(Dummy[,2:6], logical=TRUE)
out <- cbind(FALSE, out)
# Actual outlier values
Dummy[which(out[,], TRUE)]
# Row and column numbers of the outliers
which(out[,], TRUE)

Student我的数据框是这样的-测试1,测试2。。。我的变量名是否按列排列,其中A、B、C、D。。。是学生的名字。我想检查每个变量中每一行的异常值。现在写我正在使用的语法-

库(异常值)

出局1。您可以运行
dput(虚拟)
并将结果添加到您的问题中吗?2.您应该重命名变量
异常值
,因为它与函数
异常值
相同。3当您将结果存储在变量的第i个元素中时:它们是什么类型的变量?阵列?你应该在你的问题中展示你是如何定义它们的。虽然不是最好的做法,但是在语言方面,使用相同名称的变量和函数是完全可以的。只有在使用高阶函数时,它才会模棱两可。能否提供数据的最低工作示例?目前,我正在处理此类数据名称测试1测试2测试3测试4测试5 a 45 47 39 13 36 B 36 42 41 45 38 C 41 38 35 42 42 D 42 34 21 35 14 E 15 44 48 37 F 47 46 32 46 83 G 48 83 48 48 48 41 H 42 42 42 42 41 35这里test是我的变量名,A,B,C,D是我的学生名。这是我的数据集的子集。这是10名学生参加5种不同类型测试的记录。我想在每个测试中逐个查找异常值,并从现有数据集中删除异常值行并保存在任何其他新数据集中。它是数据帧类型吗?你能提供R代码来生成你正在使用的确切的变量名称吗?我的数据框是这样的-测试1,测试2。。。我的变量名是否按列排列,其中A、B、C、D。。。是学生的名字。我想检查每个变量中每一行的异常值。现在写我正在使用这个语法库(离群值)我已经编辑了我的原始答案以包含你的部分数据,但是正如你所看到的,我应用的逻辑是相同的。是的,没问题。但是我想从我的数据集中删除那个异常值行并保存在任何其他数据文件中,那么我该怎么做呢?