다음과 같은 데이터 테이블이 있습니다.
library(data.table)
DF <- as.data.table(list(ID = c(125534,"122-343",312343,"12343-343FGV", 1234, 713827), Product = c('Y', NA, NA, 'Z', NA, NA), Type = c(NA, 'D', 'G', NA, NA, NA)))
ID Product Type
1: 125534 Y NA
2: 122-343 NA D
3: 312343 NA G
4: 12343-343FGV Z NA
5: 1234 NA NA
6: 713827 NA NA
ID가 분류되는 방식에 따라 CATEGORY라는 새 열을 만들고 싶습니다. 내 잘못된 코드는 다음과 같습니다.
DF$CATEGORY <- ifelse(grepl("^12[0-9]|^31[0-9]|", DF$ID), 'IN', 'OUT')
원하는 결과 :
ID Product Type CATEGORY
1: 125534 Y NA IN
2: 122-343 NA D OUT
3: 312343 NA G IN
4: 12343-343FGV Z NA OUT
5: 1234 NA NA OUT
6: 713827 NA NA OUT
6 자 미만이고 12 또는 31로 시작하지 않는 알파벳 문자 또는 기호가있는 ID가 나오도록 코딩하고 싶었습니다. 나머지는 있습니다.
나는 당신이 이것을 의미한다고 생각합니다.
DF[, CATEGORY := ifelse(grepl("[^0-9]", ID) |
nchar(ID) < 6 |
!grepl("^12|^31", ID),
"OUT", "IN")]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다