2017-10-19 4 views
0

R에서 해결할 수있는 매우 간단한 문제가있을 수 있지만 적절한 해결 방법을 찾지 못한 채 잠시 고민하고 있습니다.데이터 프레임에서 지정된 수준의 요소 행을 제거합니다.

다음 데이터 프레임에서 'Sex'에 'U'가 포함 된 행을 완전히 제거하고 factor 섹터에서 'U'레벨을 제거하면됩니다. 또한 ID 번호 벡터를 지정하여 내가 선택한 ID를 제거 할 수 있기를 바랍니다. 내 실제 데이터 세트는 이것보다 훨씬 큽니다.

datf <- read.table(text = "ID Sex Mor SITE 
          110 F W 1 
          111 M W 2 
          112 M B 4 
          135 F W 3 
          556 M B 1 
          557 U B 1 
          558 M W 2", 
        header = TRUE) 

나는 내가 이것을 해결할 수있을 것이라고 생각하지만, 나는 그런 droplevels- 등이 웹 사이트에 제안 된 다양한 방법을 시도했지만 나는 그것을 알아낼 수 없습니다. 도와 주셔서 대단히 감사드립니다!

+0

무엇을'R' 코드 벡터의 ID 당신이 시도 모든 행을 제거 수준 Sex == 'U'으로 행을 제거하고 드롭? – Nate

답변

3
  • datf <- droplevels(datf[!datf$Sex == 'U',]) 
    str(datf) 
    
    'data.frame': 6 obs. of 4 variables: 
    $ ID : int 110 111 112 135 556 558 
    $ Sex : Factor w/ 2 levels "F","M": 1 2 2 1 2 2 
    $ Mor : Factor w/ 2 levels "B","W": 2 2 1 2 1 2 
    $ SITE: int 1 2 4 3 1 2 
    
  • datf <- datf[!(datf$ID %in% c(110, 558)),] 
    datf 
    
        ID Sex Mor SITE 
    2 111 M W 2 
    3 112 M B 4 
    4 135 F W 3 
    5 556 M B 1 
    
+0

대단히 감사합니다! – RobP

관련 문제