r - 过滤数据框中的值时出错
问题描述
Sample data(dd1)
"d" "sumMLE" "sumB" "n" "p_wj" "p_wj_log" "Omega_NB" "Omega_MLE"
"1" 1 -5.20994142259661 -5.14443748338538 1 0.666666666666667 -0.405465108108164 -5.54990259149355 -5.61540653070477
"2" 2 -6.5962357837165 -6.06072821525954 1 0.666666666666667 -0.405465108108164 -6.46619332336771 -7.00170089182467
"3" 3 -1.67397643357167 -2.09186406167839 1 0.666666666666667 -0.405465108108164 -2.49732916978656 -2.07944154167984
"4" 1 -5.20994142259661 -5.14443748338538 2 0.333333333333333 -1.09861228866811 -6.24304977205349 -6.30855371126472
"5" 2 -6.5962357837165 -6.06072821525954 2 0.333333333333333 -1.09861228866811 -7.15934050392765 -7.69484807238461
"6" 3 -1.67397643357167 -2.09186406167839 2 0.333333333333333 -1.09861228866811 -3.1904763503465 -2.77258872223978
我正在尝试对上述数据运行以下代码,但我遇到了错误,特别是在下面注释为的行中:
Error: Result must have length 2, not 6.
代码 :
dd1$p_wj_log <- log(dd1$p_wj)
dd1$Omega_NB<-dd1$sumB+dd1$p_wj_log
dd1$Omega_MLE<-dd1$sumMLE+dd1$p_wj_log
maxMLE<-dd1 %>% group_by(dd1$d) %>% filter(dd1$Omega_MLE == max(dd1$Omega_MLE)) #this line shows error
maxBayesian<-dd1 %>% group_by(dd1$d) %>% filter(dd1$Omega_NB == max(dd1$Omega_NB)) #this line shows error
预期结果
maxMLE
"d" "sumMLE" "sumB" "n" "p_wj" "p_wj_log" "Omega_NB" "Omega_MLE"
"1" 1 -5.20994142259661 -5.14443748338538 1 0.666666666666667 -0.405465108108164 -5.54990259149355 -5.61540653070477
"2" 2 -6.5962357837165 -6.06072821525954 1 0.666666666666667 -0.405465108108164 -6.46619332336771 -7.00170089182467
"3" 3 -1.67397643357167 -2.09186406167839 1 0.666666666666667 -0.405465108108164 -2.49732916978656 -2.07944154167984
maxBE
"d" "sumMLE" "sumB" "n" "p_wj" "p_wj_log" "Omega_NB" "Omega_MLE"
"1" 1 -5.20994142259661 -5.14443748338538 1 0.666666666666667 -0.405465108108164 -5.54990259149355 -5.61540653070477
"2" 2 -6.5962357837165 -6.06072821525954 1 0.666666666666667 -0.405465108108164 -6.46619332336771 -7.00170089182467
"6" 3 -1.67397643357167 -2.09186406167839 2 0.333333333333333 -1.09861228866811 -3.1904763503465 -2.77258872223978
解决方案
尝试以下操作:
maxMLE <- dd1 %>% group_by(d) %>% filter(Omega_MLE == max(Omega_MLE))
maxBayesianb <- dd1 %>% group_by(d) %>% filter(Omega_NB == max(Omega_NB))
推荐阅读
- python-3.x - shuffle 数据帧的索引顺序
- java - 如何在 @WebMvcTest 单元测试中将 PersistentEntityResourceAssembler 注入到自定义 @RepositoryRestController 的请求方法中
- angular - 主题概述 mat-input box、mat-select 和 mat-paginator
- android - Android Studio 3.2.1 升级后的构建错误
- python - apache Beam 在本地运行但无法从 Python 中的 csv 读取数据
- python - Numpy argsort 返回意外的答案
- pyspark - PySpark 中的多类分类评估器
- python-3.x - python3——嵌套while循环驱动的用户输入菜单决策树
- css - 如何使表格自动适应 Bootstrap/CSS 中列的宽度
- sql - 汇总案例