date A B C
11/24/2016 0 -1 -1
11/23/2016 -1 -1 -1
11/22/2016 0 -1 -1
11/21/2016 0 -1 -1
11/18/2016 -1 -1 -1
11/17/2016 -1 -1 -1
11/16/2016 -1 -1 -1
11/15/2016 -1 -1 -1
11/14/2016 -1 -1 -1
11/11/2016 -1 -1 -1
11/10/2016 0 -1 0
11/9/2016 0 -1 0
엑셀 명령 엑셀에서 IF 복제() 논리 명령 C
가 =IF(A2=-1, -1, IF(AND(B2=-1,C3=-1),-1,0))
때문이다 (데이터는 ROW2 가정에서 시작). 따라서 기본적으로 열 A가 -1이면 열 C도 -1이됩니다. 그렇지 않으면 B2=-1
인지 확인하고 C 아래의 행이 -1
인지 확인합니다. Excel에서 수식을 복사/붙여 넣기 만하면 C가 자동으로 업데이트됩니다.R - R
R에서는 col A
및 B
에 대한 값이 있으며이 열을 사용하여 Excel을 통해 수행 한 방법과 마찬가지로 C
을 만들려고합니다. 그러나, 나는 꽤 오랫동안 이것을하는 방법에 대해 생각 붙어 있었어요. 이것은 'C'가 'A'에 의존하고, 실패하면 'B'와 그 자체의 지체 값에 의존하기 때문입니다. 도움을 많이 주시면 감사하겠습니다!
편집 : 나는 아마도 작동 할 수있는 것을 염두에두고 있습니다.
for (i in 1:length(dat[,1])){
dat[i,3] <- ifelse(dat[i,1]==-1, -1, 0)
}
첫 번째 루프를 실행 한 후, 내가 얻을 : 두 번째 조건 이제
A B V3
1 0 -1 0
2 -1 -1 -1
3 0 -1 0
4 0 -1 0
5 -1 -1 -1
6 -1 -1 -1
7 -1 -1 -1
8 -1 -1 -1
9 -1 -1 -1
10 -1 -1 -1
11 0 -1 0
12 0 -1 0
: 두 번째 조건
for (i in 2:length(dat[,1])){
dat[i-1,3] <- ifelse(dat[i-1,2]==-1&dat[i,3]==-1, -1, dat[i,3])
}
, 내가 for()
확인할 것을 바라고 있어요 앞의 행과 -1
을 반복적으로 채우십시오. 현재 C에서 행 앞에 -1
이 있고가있는 한 그러나 B의 현재 행에 10 일,이 반환 끝 : row3
-1로 채워진 얻을 수 있도록
A B V3
1 0 -1 -1
2 -1 -1 0
3 0 -1 0
4 0 -1 -1
5 -1 -1 -1
6 -1 -1 -1
7 -1 -1 -1
8 -1 -1 -1
9 -1 -1 -1
10 -1 -1 0
11 0 -1 0
12 0 -1 0
내가, -1로 유지하는 row2
이 필요합니다.
그래서'C' 열의 값은 이미 있습니까? –
@Ronak Shah 죄송합니다! 명확히해야합니다. 저는 R에서'A'와'B'에 대한 값을 가지고 있습니다. Excel에서 어떻게했는지'C '를 만들기 위해 그것들을 사용하고 싶습니다. 내 게시물을 편집 할 것입니다! – Nikitau
'dplyr :: case_when'은 그 말 그대로 처리합니다 :'library (dplyr); (C == -1 ~ -1, TRUE ~ 0))'그렇지 않으면 중첩 된 ifelse를 사용할 수있다. '호출하지만, 그것은 지저분해진다. – alistaire