// RowNA returns a row with the same columns as the dataframe but with all
// columns having an NA value
RowNA returns a row with the same columns as the dataframe but with all
columns having an NA value
// RowNA returns a row with the same columns as the dataframe but with all // columns having an NA value
func (df *DF) RowNA() *Row {
	rval := &Row{
		mci: df.mci.Clone(),
		rd: RowData{
			boolVals:   make([]BoolVal, 0),
			intVals:    make([]IntVal, 0),
			floatVals:  make([]FloatVal, 0),
			stringVals: make([]StringVal, 0),
		},
	}
	for _, ci := range df.mci.info {
		switch ci.colType {
		case ColTypeBool:
			rval.rd.boolVals = append(rval.rd.boolVals, BoolVal{IsNA: true})
		case ColTypeInt:
			rval.rd.intVals = append(rval.rd.intVals, IntVal{IsNA: true})
		case ColTypeFloat:
			rval.rd.floatVals = append(rval.rd.floatVals, FloatVal{IsNA: true})
		case ColTypeString:
			rval.rd.stringVals = append(rval.rd.stringVals,
				StringVal{IsNA: true})
		default:
			panic(dfErrorf("unexpected column type: %s", ci.colType))
		}
	}
	return rval
}
func ( df * DF ) RowNA ( ) * Row { rval := & Row { mci : df . mci . Clone ( ) , rd : RowData { boolVals : make ( [ ] BoolVal , 0 ) , intVals : make ( [ ] IntVal , 0 ) , floatVals : make ( [ ] FloatVal , 0 ) , stringVals : make ( [ ] StringVal , 0 ) , } , } for _ , ci := range df . mci . info { switch ci . colType { case ColTypeBool : rval . rd . boolVals = append ( rval . rd . boolVals , BoolVal { IsNA : true } ) case ColTypeInt : rval . rd . intVals = append ( rval . rd . intVals , IntVal { IsNA : true } ) case ColTypeFloat : rval . rd . floatVals = append ( rval . rd . floatVals , FloatVal { IsNA : true } ) case ColTypeString : rval . rd . stringVals = append ( rval . rd . stringVals , StringVal { IsNA : true } ) default : panic ( dfErrorf ( " " , ci . colType ) ) } } return rval }
RowNA returns a row with the same columns as the dataframe but with all
columns having an NA value
RowNA returns a row with the same columns as the dataframe but with all columns having an NA value