替换R中的NA值

时间:2019-05-25 02:26:09

标签: r

我的数据框包括:

 > mean_col

 Grade      Speed      Age
  3.6       30.67      8.67

,而忽略NA的每列均值的示例是:

Grade         Speed      Age
  7             54       13
  10            30.67    4
  3.6           43       23
  3             30.67    NA
  1             87       12
  3.6           30.67    NA

我正在尝试将坡度和速度列中的NA值替换为mean_col中的平均值。

所以新的数据框看起来像:

car_df$Grade <- replace(is.na, mean_col$Grade)

car_df$Speed <- replace(is.na, mean_col$Speed)

我尝试过:

class ProductAdmin(admin.ModelAdmin): 
    ...
    def save_model(self, request, obj, form, change):
        update_fields = []
        for key, value in form.cleaned_data.items():
            # True if something changed in model
            if value != form.initial[key]:
                update_fields.append(key)

        obj.save(update_fields=update_fields)

但这是行不通的。希望对此有所帮助。

1 个答案:

答案 0 :(得分:0)

使用tidyr's replace_na,您可以执行以下操作:

car_df=data.frame(Grade=c(7,10,NA,3,1,NA),Speed=c(54,NA,43,NA,87,NA),Age=c(13,4,23,NA,12,NA))
library(tidyr)
replace_na(car_df,as.list(colMeans(car_df,na.rm=T)))