1

我正在使用 SPSS Modeler 并安装了 Essentials for R。

我试图让一个非常简单的测试用例工作,我将数据发送到 R Transform 节点并用在 R 中创建的数据覆盖数据。

在下面的示例中,我使用 Iris 数据集(在 R 中原生可用),并尝试通过覆盖 modelerData 变量将该数据返回到 Modeler 流,然后将所需的元数据添加到 modelerDataModel:

data = iris[-5]
modelerData = data

modelerDataModel <- c(fieldName="Sepal Length", fieldLabel="",fieldStorage="real", fieldMeasure="", fieldFormat="", fieldRole="")

cnm = c(fieldName="Sepal Width", fieldLabel="",fieldStorage="real", fieldMeasure="", fieldFormat="", fieldRole="")
modelerDataModel <- cbind(modelerDataModel, cnm)

cnm = c(fieldName="Petal Lenth", fieldLabel="",fieldStorage="real", fieldMeasure="", fieldFormat="", fieldRole="")
modelerDataModel <- cbind(modelerDataModel, cnm)

cnm = c(fieldName="Petal Width", fieldLabel="",fieldStorage="real", fieldMeasure="", fieldFormat="", fieldRole="")
modelerDataModel <- cbind(modelerDataModel, cnm)

运行 Modeler Stream 时,我收到以下错误消息;

[2017-03-09 12:17:44] Cannot get data model: Invalid R CF Component Data Model format in R object "modelerDataModel".

此错误消息似乎完全没有帮助,因为我似乎无法在网上任何地方找到任何解释“无效的 R CF 组件”的含义。有谁知道出了什么问题?

编辑:这是 Iris 日期的快速示例,以防有人想知道:

> iris[-5]
    Sepal.Length Sepal.Width Petal.Length Petal.Width
1            5.1         3.5          1.4         0.2
2            4.9         3.0          1.4         0.2
3            4.7         3.2          1.3         0.2
4            4.6         3.1          1.5         0.2
5            5.0         3.6          1.4         0.2
6            5.4         3.9          1.7         0.4
7            4.6         3.4          1.4         0.3
8            5.0         3.4          1.5         0.2
9            4.4         2.9          1.4         0.2
10           4.9         3.1          1.5         0.1
4

2 回答 2

2

我在搜索相同的错误时发现了您的问题。要解决此错误,请在脚本结束前将函数 data.frame() 应用于 modelerData 和 modelerDataModel。

于 2017-04-24T19:47:45.950 回答
0
data(iris)
modelerData <- data.frame(iris)

m1 <- c(fieldName="Sepal.Length",fieldLabel="",fieldStorage="real",fieldMeasure="",fieldFormat="",fieldRole="");
m2 <- c(fieldName="Sepal.Width",fieldLabel="",fieldStorage="real",fieldMeasure="",fieldFormat="",fieldRole="");
m3 <- c(fieldName="Petal.Length",fieldLabel="",fieldStorage="real",fieldMeasure="",fieldFormat="",fieldRole="");
m4 <- c(fieldName="Petal.Width",fieldLabel="",fieldStorage="real",fieldMeasure="",fieldFormat="",fieldRole="");
m5 <- c(fieldName="Species",fieldLabel="",fieldStorage="string",fieldMeasure="",fieldFormat="",fieldRole="");
modelerDataModel <- data.frame(cbind(m1,m2,m3,m4,m5))

这是 iris 数据集的示例。您可以删除物种。

modelerData 和 modelerDataModel 必须是数据框。

于 2018-02-28T12:08:04.327 回答