2016-09-25 2 views
1

데이터 프레임에 qsvr 데이터 프레임 df의 두 가지 범주 형 변수가 있습니다. 이 데이터 프레임은 꽤 크지 만 qs에 100 개의 다른 레벨이 있다고 가정합니다. 패턴을 따를 필요는 없습니다. 내가 말한 것처럼 범주 형 변수 인 열 벡터 vr에는 누락 된 값이 있습니다.열 벡터의 누락 된 값 바꾸기

내가 원하는 것은 vr에있는 누락 된 값에 해당 범주 또는 값에 따라 qs에 레이블을 붙이고 싶습니다.

내가하는 vr 값 빠져있는 qs의 9 개 가지 범주는 사전을 알고있다. 예를 들어, 한 범주의 레이블이 qs이면 102이고이 범주가 qs 인 경우 vr에 누락 값이 있습니다.

그럼, 내가하고 다음 원하는 것은

  • 는 경우 QS == 102 세트 가상 현실 == Greece
  • 의 카테고리/라벨/값의 경우 QS의 카테고리/라벨/값 ==입니다 250 세트 vr == Italy

끝 등등.

슬프게도 내 데이터 프레임은 매우 복잡하며 간단한 데이터 프레임을 어떻게 재현 할 수 있는지 잘 모릅니다.

+0

'VR'모든 NA는 조인 'QS'3.이 추측 것 복잡한 문제를 보여주는 간단한 예입니다. 그러나 'vr'의 전체 요소가 NA 인 경우 어떻게 'c'로 바꾸겠습니까 (문자가 영문자 패턴을 따르는 지 분명합니다) – akrun

답변

1

3 'QS'값 '가상 현실'에서 'C'가 있다고 가정 할 때, 우리는 영업 이익은 누락을 교체하고 싶었 여부가 명확하지 않다 data.table

library(data.table) 
setDT(df)[, vr := na.omit(vr)[1] , by = qs] 

을 사용할 수 있습니다 각 'q'또는 다른 값에서 'vr'에 대한 고유 요소가있는 값. 그것은 다른 값으로 대체 할 경우, 키/값 데이터 세트를 생성하기위한 원본 데이터 셋과 on 'QS'

df1 <- data.table(qs = 1:4, vr = c("Serbia", "England", "Greece", "USA")) 
df$qs <- as.numeric(as.character(df$qs)) 
setDT(df)[df1, on = "qs"][is.na(vr), vr := i.vr][, i.vr := NULL][] 
+0

예문의 문자는 단지 설명을위한 것일 뿐이므로 대체해야합니다. 내가 원하는 이름으로'vr'에 누락 된 값. 예를 들어,'qs == 1'이 "누락 값을 세르비아"로 설정하면. – msh855

+0

@ msh855 질문 아래에 의견을 게시했습니다. 귀하의 질문에 'qs'요소는 모두 'vr'에 대해 누락되었습니다. 3. 그러면 'c'로 대체해야한다는 것을 어떻게 알 수 있습니까? – akrun

+0

교체해야 할 부분을 알고 있기 때문에 이것은 문제가되지 않습니다. 그래서, 예를 들어,'3'에 대해서 저는'그리스 '를 설정하고 싶습니다. 저를위한 진짜 어려움은'vr'에 가치가 빠져 있음을 알고 있지만 "qs"에 어떤 범주가 있는지 모른다는 것입니다. 'qs'에 어떤 카테고리가 있는지 찾아내는 것은'vr'에 빠진 값이 있습니다. 가장 어려운 것은'qs '에 카테고리를 찾으면'vr'에 줄 이름이 무엇인지 알기 때문에 비교적 쉽게 교체 할 수 있습니다. – msh855