Rattle 加载 titanic_train 完整数据但在子集化时失败
Rattle loads titanic_train full data but fails when subsetted
我可以毫无问题地将 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()
dat 和 df 都显示为 class data.frame.
Rattle 正确加载 dat,但当我尝试加载 df.
时失败并显示错误代码
我错过了什么?
更新
现在我更糊涂了。以下代码适用于 dat2 数据框,但在 Rattle 中尝试将 df 作为 R 数据集加载时出现错误。 (我将 mutate_at 更新为 mutate(across 但它没有任何区别。
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
函数的统计包调用。在上面的代码中命名对象 dt 时会发生同样的错误——Rattle 失败是因为(我认为)它认为 dt 是 T 分布函数。将对象名称更改为 dt1 或 df1 在 Rattle 中工作得很好。
当我尝试 class(df)
或 typeof(df)
时,这并不明显。虽然使用现有的 function/object 名称来命名对象是危险的,但数据框的 df 和数据 table 的 dt 通常是看过。
我可以毫无问题地将 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()
dat 和 df 都显示为 class data.frame.
Rattle 正确加载 dat,但当我尝试加载 df.
时失败并显示错误代码我错过了什么?
更新
现在我更糊涂了。以下代码适用于 dat2 数据框,但在 Rattle 中尝试将 df 作为 R 数据集加载时出现错误。 (我将 mutate_at 更新为 mutate(across 但它没有任何区别。
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
函数的统计包调用。在上面的代码中命名对象 dt 时会发生同样的错误——Rattle 失败是因为(我认为)它认为 dt 是 T 分布函数。将对象名称更改为 dt1 或 df1 在 Rattle 中工作得很好。
当我尝试 class(df)
或 typeof(df)
时,这并不明显。虽然使用现有的 function/object 名称来命名对象是危险的,但数据框的 df 和数据 table 的 dt 通常是看过。