我想产生一个循环为这样的:使用if(任何())在for循环中
group1 = c(1,3,7,25)
for (ii in 1:25){
if (ii == any(group1)){test = 5} else {test=1}
}
我收到关于强迫我喜欢的类型的“双师型”的说法逻辑警告。结果是只有我的else语句被使用。这是什么意思,我该如何解决这个问题?谢谢。
我想产生一个循环为这样的:使用if(任何())在for循环中
group1 = c(1,3,7,25)
for (ii in 1:25){
if (ii == any(group1)){test = 5} else {test=1}
}
我收到关于强迫我喜欢的类型的“双师型”的说法逻辑警告。结果是只有我的else语句被使用。这是什么意思,我该如何解决这个问题?谢谢。
这并不完全清楚你想要什么。可能
test <- c(1,5)[1+(1:25) %in% group1]
相同的结果:
test <- ifelse(1:25 %in% group1, 5, 1)
哦,好的,我会做出for
-loopy版本,太:
test <- integer(25)
for (ii in 1:25){
if (ii %in% group1){test[ii] <- 5} else {test[ii] <- 1}
}
test
,则any()也会返回FALSE究竟!谢谢迪文!你是对的,我不清楚我的测试输出应该是一个向量。 – struggleBus
您正在使用错误的任何功能
any(iterable)
返回真,如果可迭代的任何元素是真实的。如果迭代器为空,则返回False。
@OzanDeniz:这没有意义。只有一个“任何”功能。如果iterable == 0或者如果iterable = c(0,0,0,0),或者所有参数都是FALSE但是它们不是False –
你问任何'() '以确定是否有任何值你的矢量'group1'是真的......我想你可能想'任何(%%组1)%'。 – Justin
@Justin也许完全不需要“任何”...? – joran
@joran由jove我认为你可能是对的! – Justin