对于选定的列,如何使用sparklyr为列平均值估算缺失值?

时间:2018-06-06 18:42:46

标签: r apache-spark missing-data sparklyr

对于sparklyr中的Spark数据框,我知道NA可以使用na.replace(number)使用固定数字进行估算,我知道我可以为硬编码列执行na.replace(x=something)

现在我有一个包含列名的向量,我想用平均值来计算缺失值。如何为这些列中的所有缺失值插入均值?

我调查spark_apply对其应用mice,但尚未找到解决方案。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Imputer。让我们说数据看起来像这样:

app.module.ts

 import { TextMaskModule } from 'angular2-text-mask';
 @NgModule({
  imports: [
    FormsModule,
    TextMaskModule 
 ],

contact.html

        <ion-input type="tel" 
           [(ngModel)]="phoneNumber" 
           [textMask]="{mask: masks.phoneNumber}" >
        </ion-input>

contact.ts

  import { TextMaskModule } from 'angular2-text-mask';

  export class ContactPage {
  form: FormGroup;
  masks: any;

  phoneNumber: any = "";

  constructor() {
    this.masks = {
        phoneNumber: ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/],
    };
 }
}

变压器需要输入和输出列列表:

df <- copy_to(sc, tibble(id=1:3, x=c(1, NA, 3), y=c(NA, 2, -1)))

,可以如下所示应用:

input_cols <- c("x", "y")
output_cols <- paste0(input_cols, "_imp")
df %>% 
  ft_imputer(input_cols=input_cols, output_cols=output_cols, strategy="mean")