r-Rattle加载titanic_train完整数据,但在进行子集时失败



我可以毫无问题地将titanic_train数据集加载到Rattle中,但如果我对几个列进行子集设置,我会得到错误:

Error in paste(., collapse=""): cannot coerce type 'closure' to vector of type 'character'

以下是我的工作流程:

library(magrittr)
library(rattle)
library(titanic)
library(dplyr)
dat <- titanic_train
df <- dat[c(2, 3, 5, 6)]
df %<>% mutate_at(c("Survived", "Sex"), factor)
rattle()

datdf都显示为类数据帧。

Rattle正确加载dat,但在尝试加载df时失败,并返回错误代码。

我错过了什么?

更新

现在我更困惑了。以下代码适用于dat2数据帧,但我在Rattle中将df加载为R数据集时出错。(我将mutate_at更新为mutate(跨,但没有区别。

library(titanic)
library(magrittr)
library(rattle)
library(dplyr)
dat <- titanic_train
dat2 <- dat[c(2,3,5,6)]
df <- dat[c(2,3,5,6)]
dat2 %<>% mutate(across(c("Survived","Sex"), factor))
df %<>% mutate(across(c("Survived","Sex"), factor))
rattle()

问题似乎是Rattle将df对象视为对F分布的df函数的stats包调用。在上面的代码中命名对象dt时也会出现同样的错误——Rattle失败是因为(我认为(它认为dt是T分布函数。在Rattle中,将对象名称更改为dt1

df1当我尝试class(df)typeof(df)时,这一点并不明显。虽然用现有的函数/对象名称命名对象是危险的,但常见的是数据帧的df和数据表的dt

最新更新