r - 如何从 R 上的矩阵返回 1 列值?
问题描述
快乐隔离..
我正在尝试将一个向量 (1,7) 的值与矩阵 (2,21) 匹配
这里的目标是将向量值与矩阵值匹配,因为两者中的值相等,如示例所示
if(Removed[,1] %like% T1PickProb[2]){
print("yes")
} else{
print("no match")
}
T1PickProb
[output]
0.01754386 0.06140351 0.13157895 0.23684211 0.28070175 0.17543860 0.09649123
Removed
[output]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18]
[1,] 0.01754386 0.01754386 0.01754386 0.01754386 0.01754386 0.01754386 0.06140351 0.06140351 0.06140351 0.06140351 0.06140351 0.1315789 0.1315789 0.1315789 0.13157895 0.2368421 0.2368421 0.23684211
[2,] 0.06140351 0.13157895 0.23684211 0.28070175 0.17543860 0.09649123 0.13157895 0.23684211 0.28070175 0.17543860 0.09649123 0.2368421 0.2807018 0.1754386 0.09649123 0.2807018 0.1754386 0.09649123
[,19] [,20] [,21]
[1,] 0.2807018 0.28070175 0.17543860
[2,] 0.1754386 0.09649123 0.09649123
这应该打印出“yes”,因为 T1PickProb[2] 是 0.06140351,它位于 Removed[,1] 中,它有两个值 0.01754386 和 0.06140351。但是它打印出“不匹配”
所以我的问题是,有没有办法可以将值与矩阵中的特定列匹配?我试过以下
Removed[,1]
但这在运行 about if 语句时会返回以下错误:
In if (Removed[, 1] %like% T1PickProb[2]) { :
the condition has length > 1 and only the first element will be used
我也试过
Removed[1,2]
但是,这会返回第二列中的第一个值。我不确定还能做什么?任何帮助将不胜感激:)谢谢
解决方案
T1PickProb
此函数返回使用 Base-R 找到的每个值的列列表
lapply(T1PickProb, function(y) which( apply(removed, 2, function(x) any(x %in% y)) ==1))
[[1]]
[1] 1 2 3 4 5 6
[[2]]
[1] 1 7 8 9 10 11
[[3]]
[1] 2 7 15
[[4]]
[1] 3 8 18
[[5]]
[1] 4 9 20
[[6]]
[1] 5 10 14 17 19 21
[[7]]
[1] 6 11 15 18 20 21
数据:
removed <- structure(c(0.01754386, 0.06140351, 0.01754386, 0.13157895, 0.01754386,
0.23684211, 0.01754386, 0.28070175, 0.01754386, 0.1754386, 0.01754386,
0.09649123, 0.06140351, 0.13157895, 0.06140351, 0.23684211, 0.06140351,
0.28070175, 0.06140351, 0.1754386, 0.06140351, 0.09649123, 0.1315789,
0.2368421, 0.1315789, 0.2807018, 0.1315789, 0.1754386, 0.13157895,
0.09649123, 0.2368421, 0.2807018, 0.2368421, 0.1754386, 0.23684211,
0.09649123, 0.2807018, 0.1754386, 0.28070175, 0.09649123, 0.1754386,
0.09649123), .Dim = c(2L, 21L), .Dimnames = list(NULL, NULL))
T1PickProb <- c(0.01754386,0.06140351,0.13157895,0.23684211,0.28070175,0.17543860,0.09649123)
推荐阅读
- javascript - 如何在 Three.js 中创建无限地板(天际线)?
- bash - bash - source builtin 和 $HISTCMD 变量
- bash - `echo " $1 % 2" | bc -l` 在终端或 bash 脚本中不起作用,但 `bc` 在 `bc` 中接受这些参数
- rxjs - 如何使用 NGRX 在 Angular 5 中防止内容跳转/滚动
- angular - 如何在模板字符串中转义引号和大括号
- python - 如何在 Auth 对象的 __call__ 方法中签署 requests.Request 的正文?
- scala - Akka HTTP 设置响应标头
- android - 是否可以创建一个接受任何对象列表的动态 RecyclerView 适配器