【发布时间】:2016-06-03 13:04:20
【问题描述】:
我目前正在尝试检查一个元素是否是列表的一部分,如果是则返回 1,否则返回 0。
我一直在为此做一个循环,但由于矩阵将非常大(这里仅提供一个简单的示例),我想知道是否有一种有效的方法来做到这一点。
rm(list=ls()) # clear memory
names <- c("a","b","c","d","e","f","g","h","i","j","k50","l50","m50","n50","o50")
proba <- c(1,1,1,1,1,1,1,1,1,1,0.5,0.5,0.5,0.5,0.5)
T1_temp <- sample(names,4,prob=proba)
# Loop to check which element of T1_temp is included in names
T1 <- c()
for (i in 1:length(names)){
if (is.element(names[i],T1_temp)){T1[i]=1}
else{T1[i]=0}
}
结果是
[1] 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0
【问题讨论】:
-
@Donkey Kong 感谢您重塑我的问题并感谢 jogo 的提示
标签: r performance loops