2013-06-21 3 views
0

의에서 내가 같은 루프를 생성하고 싶습니다 : 나는 논리적으로 '더블'유형의 내 주장을 강요 대해 경고를 수신하고경우 (모든()) 루프

group1 = c(1,3,7,25) 

for (ii in 1:25){ 
    if (ii == any(group1)){test = 5} else {test=1} 
} 

. 그 결과 내 else 구문 만 사용됩니다. 그게 무슨 뜻이며 어떻게 수정합니까? 고맙습니다. 당신이 잘못

any(iterable) 

반환 사실 어떤 기능을 사용하는

+1

당신은'상관 없음 원하는 asking 're을() '당신의 벡터'group1'이 참이라는 것을 결정하기 위해서 ... 나는 당신이'(% group1에있는 %)'을 원할지도 모른다고 생각합니다. – Justin

+2

@ Justin 아마도 any는 전혀 필요하지 않습니다 ...? – joran

+0

@ joran by jove 나는 네가 옳을 수도 있다고 생각한다! – Justin

답변

1

뭘 원하는지 정확히 알 수 없습니다. Possibly

test <- c(1,5)[1+(1:25) %in% group1] 
as

Same result :

test <- ifelse(1:25 %in% group1, 5, 1) 

오, 됐어, i는 too for -loopy version, make 것들 :

test <- integer(25) 
for (ii in 1:25){ 
    if (ii %in% group1){test[ii] <- 5} else {test[ii] <- 1} 
       } 
test 
+0

정확하게! 감사합니다 DWin! 당신 말이 맞아요, 시험을위한 제 산출물이 벡터로되어 있다고 분명치 않았습니다. – struggleBus

0

반복자의 요소가 true 인 경우. iterable이 비어 있으면 False를 반환합니다.

+0

@OzanDeniz : 이것은 이해가되지 않습니다. 'any' 함수는 하나뿐입니다. 'iterable == 0'이거나 iterable = c (0,0,0,0)이거나 모든 인수가'FALSE' 인 경우 FALSE를 반환하지만 False이면 그렇지 않습니다. –