2016-11-18 20 views
1

? _이 (가)있는 대규모 데이터 프레임이 있습니까? 크기는 501 행 42844 열입니다.데이터 프레임에서 NA 값을 삭제하려면 R

data[data == "?_?"] <- NA 

그래서 내가 지금 값 NA하고 난이 Data.frame에서 다음을 생략하고 싶지만 뭔가 나쁜 것입니다 .... 을 : R을 사용하여, 나는 이미 다음이 코드를 사용하여 NA로 대체 한 아래 명령을 실행했을 때 :

data_na_rm <- na.omit(data) 

나는 결과적으로 0, 42844 개체를 얻는다.

dim(data_na_rm) #gives me 0 42844 
data_na_rm[1,2] #gives me NA 
data_na_rm[5,3] #gives me NA 
############################ 
data_na_rm[2] #gives me the title of the second column 
data_na_rm[5] #gives me the title fo the fifth 

나는 무엇을해야합니까 ?? 나는이 일에 많은 시간을 할애했다. 누구든지 나를 돕기 위해 시간을 할애 해 주시면 감사하겠습니다.

+0

'na.omit'은 행의 아무 곳이나'NA '가있는 모든 행을 삭제합니다. 어딘가에있는 모든 행에 일부 'NA'가있을 것입니다. – JackStat

+0

'data [data == "? _?"] <- NA' ... 이것은 이상합니다. 하나의 _column_에서 값을 대체 할 의도가 없었습니까? –

+0

우선, 저와 개발 문제를 해결하는 데 시간을 할애 해 주신 모든 분들께 감사드립니다. Biegeleisen이 저의 의도는 data_frame의 모든 곳에서 '? _'값을 'NA'로 바꾸는 것이 었습니다. 이 data_set에 Bugs가있는 Bayesian 모델을 실행하고 싶습니다. 따라서 Bugs/R_Jugs로 작업하려면 먼저이 값을 NA로 바꾸고이를 생략해야합니다. 그럼에도 불구하고이 Data_frame에 각 행에 적어도 하나의 NA 값이 포함되어 있을지는 모릅니다. –

답변

0

JackStat이 의견에서 말한 것과 마찬가지로 모든 행에 NA가있을 수 있습니다. 어쩌면 테스트해야할까요? :

# Some Data. All rows have an NA but not all columns 

    df <- data.frame(col1 = c(NA, 2, 3, 4), 
      col2 = c(1, NA, 3, 4), 
      col3 = c(1, 2, NA, 4), 
      col4 = c(1, 2, 3, NA), 
      col5 = c(1, 2, 3, 4)) 

# test whether an NA is present in each row 

apply(df, 1, function(x) {sum(is.na(x)) > 0}) 
[1] TRUE TRUE TRUE TRUE 

이렇게하면 가장 많은 NA에 기여한 열을 찾을 수 있습니다. NAA의 수를 요약하면 다음과 같습니다.

apply(df, 2, function(x) {sum(is.na(x))}) 
col1 col2 col3 col4 col5 
    1 1 1 1 0 
+0

오 마이 갓 !!!! 나는 각 줄에 적어도 하나의 NA 값을 가지고 있습니다 ... 당신은 윌리엄을 가지고 있고 당신의 도움에 대해 대단히 감사합니다. R_Jugs에서 베이지안 모델을 실행하기 위해이 data.frame을 처리하기 위해해야 ​​할 일을 지금 검색해야합니다. –

+0

@GiorgosK 기꺼이 도와 드릴 수 있습니다. 행운을 빕니다! – William

+0

@GiorgosK 많은 수의 NAs에 기여하는 특정 열이 있는지 찾아주는 업데이트를 추가했습니다. – William

관련 문제