【发布时间】:2015-04-04 06:59:57
【问题描述】:
我有 2 个列表,我需要识别并标记列表 1 和列表 2 之间匹配的位置。
例子:
List 1 List 2
1 1
2 2
3 3
4 4
5 5
6
7
8
9
10
期望的输出:
List 1 Match
1 Y
2 Y
3 Y
4 Y
5 Y
6 N
7 N
8 N
9 N
10 N
我尝试了将 if 语句组合在一个循环中,但无论匹配如何,都会产生否定结果。任何帮助将非常感激!
我目前的做法:
for(x in 1:List1))
{
if(List1[x] %in% List2 == TRUE) {
List1$Match <- 'Yes'
}else{
List1$Match <- 'No'
}
}
所以我需要将 TRUE 或 FALSE 附加到列表 1
> List1 %in% List2==TRUE
[1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
这个诀窍可以用 Y 和 N 代替 true false:
List1$Match <- List1 %in% List2==TRUE
【问题讨论】:
-
他们是
lists 还是vectors 在list中? -
chr [1:10] “1” “2” “3” “4” “5” “6” “7” “8” “8” “10”
-
我想你在找
c("N", "Y")[(List1 == List2) + 1] -
附加到
List1是什么意思?List1是一个向量。你想做什么?是否要替换List1中的值? -
List1$Match <- List1 %in% List2==TRUE是一个可怕的词。为什么不只是List1$Match <- List1 %in% List2?
标签: r list loops if-statement match