寻找R中所有特定子集的异常值?
我的数据中有几种情况和几种测量类型寻找R中所有特定子集的异常值?,r,loops,filter,outliers,R,Loops,Filter,Outliers,我的数据中有几种情况和几种测量类型我希望R分别给出每对条件和测量类型的离群值 例如,假设我有3个条件(1-3)和3种度量(A-C),对于几个参与者,每行的值为x。我想要条件1和测量值A、条件2和测量值B等的值x的离群值。 (测量值和条件均为非数字) 我试过创建一个循环 for(d in unique(data$measure)){ for(c in unique(data$condition)){ data %>% filter(measure == d, cond
我希望R分别给出每对条件和测量类型的离群值
例如,假设我有3个条件(1-3)和3种度量(A-C),对于几个参与者,每行的值为x。我想要条件1和测量值A、条件2和测量值B等的值x的离群值。
(测量值和条件均为非数字) 我试过创建一个循环
for(d in unique(data$measure)){
for(c in unique(data$condition)){
data %>%
filter(measure == d, condition ==c) %>%
o <- outlier(data$value) %>%
print(o)
}
}
(如果我在没有循环的情况下运行它,例如通过搜索特定条件的异常值,它也无法在第一行之后找到管道函数。)
你知道如何正确编码吗?你已经在使用
dplyr
,所以我建议你使用groupby
,因为它(对我来说)是一种更自然的数据处理方式
此外,此部分的语法不正确:
数据%>%
过滤器(度量==d,条件==c)%>%
o%
打印(o)
为什么?
过滤器(…)%%>%
应该通过管道连接到接受帧的对象,但是。。。您正在将filter
的输出发送到作业o%
do({data.frame(离群值=离群值(.$value))})
打印(o)
}
}
其中,o
将是一个data.frame
(嗯,tbl_df
tibble),有三列:度量
,条件
,和异常值
。在这种情况下,需要使用do
,因为大多数非tidyverse函数忽略groupby
分组,所以我们使用do
来回避这个问题
不过,也许这可以将两个循环替换为一个命令:
数据%>%
分组依据(测量、条件)%>%
汇总(异常值=异常值(值))%>%
解组()
我假设您想要的是度量值
和条件
的每个唯一组合的所有离群值,并且离群值(.)
函数返回一个向量(某个长度>=1)。如果未发现异常值,则将不包括度量
/条件
对。。。如果这是一个因素,那么使用
数据%>%
分组依据(测量、条件)%>%
汇总(异常值=列表(异常值(值)))%>%
tidyr::unnest(异常值,保持为空=真)%>%
解组()
您已经在使用dplyr
,因此我建议您使用groupby
,因为它(对我来说)是一种更自然的数据处理方式
此外,此部分的语法不正确:
数据%>%
过滤器(度量==d,条件==c)%>%
o%
打印(o)
为什么?
过滤器(…)%%>%
应该通过管道连接到接受帧的对象,但是。。。您正在将filter
的输出发送到作业o%
do({data.frame(离群值=离群值(.$value))})
打印(o)
}
}
其中,o
将是一个data.frame
(嗯,tbl_df
tibble),有三列:度量
,条件
,和异常值
。在这种情况下,需要使用do
,因为大多数非tidyverse函数忽略groupby
分组,所以我们使用do
来回避这个问题
不过,也许这可以将两个循环替换为一个命令:
数据%>%
分组依据(测量、条件)%>%
汇总(异常值=异常值(值))%>%
解组()
我假设您想要的是度量值
和条件
的每个唯一组合的所有离群值,并且离群值(.)
函数返回一个向量(某个长度>=1)。如果未发现异常值,则将不包括度量
/条件
对。。。如果这是一个因素,那么使用
数据%>%
分组依据(测量、条件)%>%
汇总(异常值=列表(异常值(值)))%>%
tidyr::unnest(异常值,保持为空=真)%>%
解组()
如果您已经在使用dplyr
,您是否有意避免其内置(且更高效)的groupby
功能?如果您已经在使用dplyr
,您是否有意避免其内置(且更高效)的groupby
功能?LuiseH,这是否回答了您的问题?如果是,请。谢谢路易斯,这能回答你的问题吗?如果是,请。谢谢
Error in print.default(., o) : invalid printing digits -2147483648
In addition: Warning message:
In print.default(., o) : NAs introduced by coercion to integer range