我想產生一個循環爲這樣的:使用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