케이스에 누락 된 값이 있고 다른 변수에 관찰 된 값이있는 경우 1을 반환하는 R에서 새 변수를 만드는 방법은 무엇입니까?

vahis100

누락 된 데이터 loonprofstat. 누락되어 대치해야하는 데이터에 대한 더 나은 개요를 위해 데이터 problem프레임에 추가 변수를 만들고 싶었습니다.이 변수 는 누락되어 관찰되는 경우, 그렇지 않은 1경우 각 경우에 반환 됩니다. 나는 출력으로 만 제공하는 다음 코드를 생성했습니다 . 이 문제에 대한 해결책이 있습니까?loonprofstat0x[] = 1

 {
  problem <- dim(length(t))
  for (i in 1:nrow(dflapopofficial))
  {
    if (is.na(dflapopofficial$loon[i])==TRUE & is.na(dflapopofficial$profstat[i])==FALSE) {  
      dflapopofficial$problem[i]=1
    } else {
      dflapopofficial$problem[i]=0
    }
    return(problem)
  }
앨런 카메론

여기에서 개선 할 수있는 몇 가지 사항이 있습니다.

  1. R의 많은 연산은 벡터화됩니다. 논리적 검사 등을 수행 할 때 벡터의 각 요소를 반복 할 필요가 없습니다.
  2. is.na(some_condition) == TRUE같은 단지 동일 is.na(some_condition)is.na(some_condition) == FALSE동일하다!is.na(some_condition)
  3. 데이터 프레임 내부에 새 열을 작성하고 해당 데이터 프레임의 여러 변수를 참조하는 경우을 사용 within하면 많은 입력을 줄일 수 있습니다. 특히 데이터 프레임에 긴 이름이있는 경우
  4. 을 반환 problem하고 있지만 루프에서 dflapipofficial$problem다른 변수를 쓰고 있습니다.
  5. 1과 0을 쓰려면 다음을 사용하여 논리를 숫자로 암시 적으로 변환 할 수 있습니다. +(logical_vector)

이 모든 것을 합치면 전체 루프를 한 줄로 바꿀 수 있습니다.

within(dflapopofficial, problem <- +(is.na(loon) & !is.na(profstat)))

결과를 데이터 프레임에 다시 저장하거나 다음과 같이 복사본에 저장해야합니다.

df <- within(dflapopofficial, problem <- +(is.na(loon) & !is.na(profstat)))

그래서 그것은 당신의 여분의 열에 df대한 vopy입니다 dflapopofficial.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관