例如:
require(RevoScaleR)
# Create a data frame
set.seed(100)
myData = data.frame(x = 1:100, y = rep(c("a", "b", "c", "d"), 25),
z = rnorm(100), w = runif(100))
# Create a multi-block .xdf file from the data frame
inputFile = file.path(tempdir(), "testInput.xdf")
rxDataStep(inData = myData, outFile = inputFile, rowsPerRead = 50,
overwrite = TRUE)
# Square the values in the column "z"; this works fine
rxDataStep(inData = inputFile, outFile = inputFile, overwrite = TRUE,
transforms = list(z = z^2))
# Define a squaring function and try to use it to repeat the previous step:
myFun = function(x) x^2
rxDataStep(inData = inputFile, outFile = inputFile, overwrite = TRUE,
transforms = list(z = myFun(z)))
最后一步因错误而崩溃
Error in transformation function: Error in eval(expr, envir, enclos) : could not find function "myFun"
的文档rxDataStep
指出“与所有表达式一样,转换......可以使用expression
函数在函数调用之外定义。” 但我不知道如何实施这个建议,也找不到一个例子。例如,以下内容不起作用:
myFun = expression(function(x) x^2)
rxDataStep(inData = inputFile, outFile = inputFile, overwrite = TRUE,
transforms = list(z = myFun(z)))