我有一个大的数值数据集(约700行,350,000列,作为R中的data.table读入)包含一些NA,我想尽快用列表示替换.我发现之前的帖子用NA代替NA,但是当我修改解决方案而不是输入列意味着时,我得到j,列号.似乎我必须遗漏一些明显的东西...关于如何计算列的任何建议意味着使用这种方法?
#original code
f_dowle3 = function(DT) {
for(j in seq_len(ncol((DT)))
set(DT,which(is.na(DT[[j]])),j,0)
}
#modified code
impute = function(DT) {
for(j in 2:ncol(DT))
set(DT,which(is.na(DT[[j]])),j,mean(DT[,j],na.rm = TRUE))
}
test_impute = fread("test_impute.csv")
test_impute
ID snp1 snp2 snp3 snp4
1: 1 2 1 1 0
2: 2 2 2 0 0
3: 3 2 NA 0 NA
4: 4 2 1 2 0
5: 5 2 NA 2 0
6: 6 2 1 1 0
7: 7 1 1 NA 0
8: 8 NA …Run Code Online (Sandbox Code Playgroud)