blob: 4782921d4a1b10267954478e7aefdf88a2b54778 [file] [log] [blame]
#-------------------------------------------------------------
#
# Copyright 2020 Graz University of Technology
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#-------------------------------------------------------------
F = read($1, data_type="frame", format="csv", header=FALSE);
# as the method accepts the matrix so convert the non-numeric data into matrix
# detect schema for transformation
schema = detectSchema(F)
s=""
for(i in 1: ncol(F)) {
if(as.scalar(schema[1,i]) == "STRING" | as.scalar(schema[1,i]) == "BOOLEAN" )
s = s+as.integer(i)+",";
}
# recode data frame
jspecR = "{ids:true, recode:["+s+"]}";
[X, M] = transformencode(target=F, spec=jspecR);
# call the method
Y = imputeByFD(X, $2, $3, $4);
# getting the actual data back
dF = transformdecode(target=Y, spec=jspecR, meta=M);
write(dF, $5, format="binary")