희망이 맞습니다. 숫자 열 값이있는 데이터 프레임이 있고이 열을 사용하여 숫자 값이 해당 값을 기반으로 다른 버킷에 '매핑'된 새 열을 만들고 싶습니다. 아래는 몇 가지 테스트 데이터뿐 아니라이 문제를 해결하기 위해 현재 사용하고있는 ifelse() 방식의 중첩 된 중첩 방식입니다. 나는이 방법은 많은 버킷 잘 확장되지 않기 때문에,) (ifelse 문을 중첩 포함하지 않는 좋은 방법이 코딩 바라고 : 여기 여기 수치를 범위가 다른 범위에 따라 R의 범주 형 값에 매핑하십시오.
mydf = data.frame(strings = letters[1:10],
numerics = c(0.2, 0.4, 1.3, 5.2, 3.3, 2.1, 7.3, 1.1, 4.3, 8.3),
stringsAsFactors = FALSE)
내 테스트 dataframe, 그리고 내
- 모든 값을 <이 이동 0 에 : 내 문제 해결에 중첩 된 ifelse() 접근 방법 : 다음과 같이 위의 코드가 무엇을
mydf$buckets = ifelse(mydf$numerics <= 2, 0,
ifelse(mydf$numerics <= 4, 1,
ifelse(mydf$numerics <= 5, 2,
ifelse(mydf$numerics <= 7, 3, 4))))
은 숫자 열에서지도 값입니다
갈 적은 양의 버켓 이상으로 잘 확장됩니다. 이 모든 도움을 주시면 감사하겠습니다! 감사합니다,
'cut (mydf $ numerics, breaks = c (0, 2, 4, 5, 7, 10), labels = c (0, 1, 2, 3, 4))' –
당신이 관심을 가질 것이라고 생각합니다. 'dplyr' 꾸러미에서'case_when '. 비늘이 잘 잡히고 코드가 명확합니다. – tictocchoc
베이스 R에서 '잘라 내기'는이 경우에 맞게 특별히 설계되었습니다. 비 모노톤 매핑의 경우 룩업 테이블을 만들고 병합 할 수 있습니다. – MichaelChirico