标签: missing-data

用于计算因子每个级别的 NA 值的函数

我有这个数据框:

set.seed(50)
data <- data.frame(age=c(rep("juv", 10), rep("ad", 10)),
                   sex=c(rep("m", 10), rep("f", 10)),
                   size=c(rep("large", 10), rep("small", 10)),
                   length=rnorm(20),
                   width=rnorm(20),
                   height=rnorm(20))

data$length[sample(1:20, size=8, replace=F)] <- NA
data$width[sample(1:20, size=8, replace=F)] <- NA
data$height[sample(1:20, size=8, replace=F)] <- NA

   age sex  size      length       width      height
1  juv   m large          NA -0.34992735  0.10955641
2  juv   m large -0.84160374          NA -0.41341885
3  juv   m large  0.03299794 -1.58987765          NA
4  juv   m large          NA          NA          NA
5  juv   m large -1.72760411          NA  0.09534935
6  juv   m large -0.27786453 …
Run Code Online (Sandbox Code Playgroud)

r missing-data plyr

6
推荐指数
1
解决办法
5602
查看次数

NA中的聚类函数(kmeans,pam,clara).如何将群集与原始数据相关联?

我需要集群一些数据,我想kmeans,pamclara与R.

问题是我的数据位于数据框的一列中,并包含NA.

我曾经na.omit()得到我的集群.但是,我如何将它们与原始数据相关联?函数返回没有NA的整数向量,并且它们不保留有关原始位置的任何信息.

有没有一种聪明的方法将聚类与数据框中的原始观察结果联系起来?(或者在存在NA时智能地执行聚类的方法?)

谢谢

r cluster-analysis k-means missing-data na

6
推荐指数
1
解决办法
1万
查看次数

如何按组填充缺失值?

我有以下数据结构。在每个组中,都缺少一些观察结果value。我确实知道每个组只有一个非缺失值(在本例中10为组 1 和11组 2)。缺失观测值的位置在组内是随机的(即不能用前一个/后一个值填充缺失值)。

如何按组用一个非缺失值来填充缺失值?

group  value
1       .
1       10
1       .
2       11
2       .
2       11
Run Code Online (Sandbox Code Playgroud)

我当前的解决方案是一个循环,但我怀疑bysort我可以使用一些聪明的方法。

levelsof group, local(lm_group)
foreach group in `lm_group' {
    levelsof value if group == `group', local(lm_value)
    replace value = `lm_value' if group == `group'
}
Run Code Online (Sandbox Code Playgroud)

missing-data stata

6
推荐指数
1
解决办法
3万
查看次数

randomForest:na.fail.default 中的错误:对象中缺少值

我尝试通过交叉验证训练随机森林,并使用该caret包来训练 rf:

### variable return_customer = binary variable
idx.train <- createDataPartition(y = known$return_customer, p = 0.8, list = FALSE)
train <- known[idx.train, ]
test <- known[-idx.train, ]
k <- 10
set.seed(123)
model.control <- trainControl(method = "cv", number = k, classProbs = TRUE, summaryFunction = twoClassSummary,  allowParallel = TRUE)
rf.parms <- expand.grid(mtry = 1:10)
rf.caret <- train(return_customer~., data = train, method = "rf", ntree = 500, tuneGrid = rf.parms, metric = "ROC", trControl = model.control)
Run Code Online (Sandbox Code Playgroud)

运行该train函数时,我收到此错误代码,但没有缺失值return_customer …

r missing-data

6
推荐指数
1
解决办法
1万
查看次数

使用 R 中的 ROLLING 均值估算缺失值

我是 R 新手,正在解决一个问题。

我需要一个函数来根据给定大小的窗口内元素的平均值来估算向量中的缺失值。

然而,这个窗口将会移动,因为假设我的NA位置为 30,而我的窗口大小为 10,则应该计算 的平均值x[20:40]。因此,对于每个找到的NA,窗口均值都会不同。

我一直在尝试这个:

impute.to.window.mean <- function(x, window) {

  na.idx <- is.na(x)  #find missing values in x

  for (na in na.idx) {

    y <- (x[na]-window):(x[na]+window)
    na.idx[na] <- mean(y, na.rm = TRUE)
  }

  return(x)
}
Run Code Online (Sandbox Code Playgroud)

但这是不正确的,我不知道如何继续。

r missing-data imputation imputets

6
推荐指数
1
解决办法
3419
查看次数

如何计算bash中netcdf文件中随时间维度求和的缺失值数量

我有一个 netcdf 文件,其中的数据是 lon、lat 和 time 的函数。我想计算在时间维度上求和的每个网格单元中缺失条目的总数,最好使用 CDO 或 NCO,因此我不需要调用 R、python 等。

我知道如何获得缺失值的总数

ncap2 -s "nmiss=var.number_miss()" in.nc out.nc
Run Code Online (Sandbox Code Playgroud)

正如我对这个相关问题的回答: count number of missing values in netcdf file - R

并且 CDO 可以告诉我空间总和

cdo info in.nc
Run Code Online (Sandbox Code Playgroud)

但我不知道如何随着时间的推移求和。例如,有没有一种方法可以指定要在 ncap2 中使用 number_miss 求和的维度?

bash netcdf missing-data nco cdo-climate

6
推荐指数
1
解决办法
1067
查看次数

在 Julia 中找到一维数组中所有缺失值的索引

此堆栈链接显示如何返回数组中的值booleansmissing

例如:

julia> A = [1, 2, 3, missing, 4, 5, 6, missing, 7, 8, missing, 9, 10]
13-element Array{Union{Missing, Int64},1}:
  1
  2
  3
   missing
  4
  5
  6
   missing
  7
  8
   missing
  9
 10

julia> ismissing.(A)
13-element BitArray{1}:
 false
 false
 false
  true
 false
 false
 false
  true
 false
 false
  true
 false
 false
Run Code Online (Sandbox Code Playgroud)

如何返回他们的索引?

missing-data julia

6
推荐指数
1
解决办法
3666
查看次数

在 Pandas 数据框中用 NaN 替换字符串值 - Python

我必须更换价值吗?使用 NaN 以便您可以调用 .isnull () 方法。我找到了几种解决方案,但总是返回一些错误。认为:

data = pd.DataFrame([[1,?,5],[?,?,4],[?,32.1,1]])
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

pd.data.replace('?', np.nan)
Run Code Online (Sandbox Code Playgroud)

我有:

     0     1  2
0  1.0   NaN  5
1  NaN   NaN  4
2  NaN  32.1  1    
Run Code Online (Sandbox Code Playgroud)

但 data.isnull() 返回:

       0      1      2
0  False  False  False
1  False  False  False
2  False  False  False
Run Code Online (Sandbox Code Playgroud)

为什么?

missing-data dataframe pandas

6
推荐指数
2
解决办法
2万
查看次数

还有比 pandas fillna() 更快的方法吗?

Pandas fillna()速度非常慢,尤其是在数据框中存在大量丢失数据的情况下。

还有比它更快的方法吗?

(我知道如果我简单地删除一些包含 NA 的行和/或列会有帮助)

python missing-data pandas

6
推荐指数
1
解决办法
4206
查看次数

类型错误:在没有 'nan_inf_to_errors' Workbook() 选项的 write_number() 中不支持 NAN/INF

我想将尺寸为 (3960, 225) 的X (ndarray) 保存在 Excel 文件 (.xlsx) 中。在X中,我有一些缺失值(nan)。我为它编写了一个代码。但是,我收到错误。

这是代码:

workbook = xlsxwriter.Workbook('arrays.xlsx')
    worksheet = workbook.add_worksheet()
    row = 0
    for col, data in enumerate(X):
        worksheet.write_column(row, col, data)
    workbook.close()
     df = pd.DataFrame(X)
## save to xlsx file
     filepath = 'my_excel_file.xlsx'
      df.to_excel(filepath, index=False)
Run Code Online (Sandbox Code Playgroud)

这是回溯:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm 2020.2.1\plugins\python\helpers\pydev\pydevd.py", line 1448, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm 2020.2.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, …
Run Code Online (Sandbox Code Playgroud)

python nan missing-data

6
推荐指数
2
解决办法
2万
查看次数