لاستبدال كافة قيم متاح بصفر أو أي محتوى آخر من الضروري تحويل البيانات من مجموعة بيانات إدخال إلى مجموعة بيانات إخراج باستخدام دالة
ركسداتاستيب.
برنامج نصي نموذج لاستبدال كافة متاح في ملف إكسدف "AirlineDemoSmall.xdf" فيما يلي:
# Create a data frame with missing valuesset.seed(17)
myDataF <- data.frame(x = rnorm(100), y = runif(100), z = rgamma(100, shape = 2))
xmiss <- seq.int(from = 5, to = 100, by = 5)
ymiss <- seq.int(from = 2, to = 100, by = 5)
myDataF$x[xmiss] <- NA
myDataF$y[ymiss] <- NA
# Convert into a xdf
myDataNA<-file.path(getwd(),"myDataNA.xdf")
trsfxdf<-rxDataStep(inData=myDataF,outFile=myDataNA,overwrite=TRUE)
writeLines("\n\nXdf Generated with random NA values")
print(rxGetInfo(myDataF, n = 15)$data) # Test ouput data
##
## Use from here if there is an existing xdf.
## replace myDataNA with your xdf file
##
writeLines("\n\nVariables that contains NA values (Missing Observations)")
(mySum <- rxSummary(~., data = myDataNA)$sDataFrame)
# Find variables that are missing
transVars <- mySum$Name[mySum$MissingObs > 0]
print(transVars) #Test detected variables
# create a function to replace NA vals with mean
NAreplace <- function(dataList) {
replaceFun <- function(x) {
x[is.na(x)] <- replaceValue
return(x)
}
dataList <- lapply(dataList, replaceFun)
return(dataList)
}
#
myDataRMV<-file.path(getwd(),"myDataRMV.xdf") # Replace Missing Value
trsfxdf<- rxDataStep(inData = myData1, outFile = myDataRMV,
transformFunc = NAreplace,
transformVars = transVars,
transformObjects = list(replaceValue = "REPLACED MISSING VALUE"),
overwrite=TRUE)
writeLines("\n\nTransformed xdf with NA replaced by Value")
print(rxGetInfo(myDataRMV, n=15)$data) # Test output data