예를 들어 다음과 같은 datset이 있습니다.
data <- data.frame(matrix(c(1,2,2,3,4,5,5,"a","a","b","a","a","a","b"), nrow = 7, ncol = 2, byrow = F))
X1 X2
1 a
2 a
2 b
3 a
4 a
5 a
5 b
그런 다음 처음에는 0으로 설정된 다른 변수 "태그"를 추가합니다.
data$tag <- 0
X1 X2 tag
1 a 0
2 a 0
2 b 0
3 a 0
4 a 0
5 a 0
5 b 0
다음과 같이 반복되는 각 행에 대해 1과 같은 "태그"를 갖고 싶습니다.
X1 X2 tag
1 a 0
2 a 1
2 b 1
3 a 0
4 a 0
5 a 1
5 b 1
다음 코드를 사용했습니다.
for (i in data$X1) {
for (j in 1:length(data$X1)) {
if (j==2) {data$tag[j] <- 1}
}
}
하지만 내가 원하는대로 작동하지 않습니다. 내가 원하는 것을 얻기 위해 두 번째 루프 (j)가 이전 루프 내부 에서 작동하도록 하고 싶습니다. 여기서 j는 X1이 변경 될 때마다 1부터 시작됩니다. 어떻게 관리 할 수 있습니까?
고마워
duplicated
기본 R의 양쪽 끝에서 사용할 수 있습니다 .
data$tag <- as.integer(duplicated(data$X1) |
duplicated(data$X1, fromLast = TRUE))
data
# X1 X2 tag
#1 1 a 0
#2 2 a 1
#3 2 b 1
#4 3 a 0
#5 4 a 0
#6 5 a 1
#7 5 b 1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다