그룹을 기준으로 누락 값을 대체하려고합니다. median() 함수에 숫자 데이터가 필요하다는 오류가 발생하지만 모든 데이터가 숫자이므로 문제가 표시되지 않습니다. 여기에 최소한으로 재현 할 수있는 예제가 있습니다.중간 교체, 숫자 데이터 필요
set.seed(123)
cluster = sample(seq(1,10),1000,replace=TRUE)
V1 = sample(c(runif(100),NA),1000,replace=TRUE)
V2 = sample(c(runif(100),NA),1000,replace=TRUE)
df = as.data.frame(cbind(cluster,V1,V2))
df_fixed = by(df,df$cluster,function(x){replace(x,is.na(x),median(x, na.rm=TRUE))})
오류가 반환 :
median.default (X, na.rm = TRUE) 오류 : 필요한 숫자 데이터
이 코드는, 그래서 비록 작동합니다 중간 값 함수에 문제가 있습니다.
df_fixed = by(df,df$cluster,function(x){replace(x,is.na(x),1)})
사용하세요 'set.seed' 이러한 있도록 등 sample' runif',' '등의 기능을 사용하여 재현 – Sotos
'by' 작은 data.frames DF로 절단한다 - 아니다 클래스 숫자. 열 단위 중위수 또는 전반적인 중앙값으로 바꾸시겠습니까? –
나는 각 그룹에 대해 열 현명한 중앙값을 대체하려고합니다. 따라서 그룹 1에 있고 누락 된 경우 그룹 1의 중간 값으로 대체하십시오. – user137698