首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用dplyr准备数据给出了:强制引入的NAs

使用dplyr准备数据给出了:强制引入的NAs
EN

Stack Overflow用户
提问于 2020-03-19 18:42:30
回答 1查看 419关注 0票数 0

我正在阅读一本关于构建决策树的书,我想我可以让一段代码更漂亮一些。下面是有问题的代码:

代码语言:javascript
复制
library(tree)
library(ISLR)
library(dplyr)

attach(Carseats)

High=ifelse(Sales <=8,"No","Yes ")
Carseats =data.frame(Carseats ,High)
tree.carseats <- tree(High~ . -Sales, Carseats)

代码的作用是在创建树结构之前将列添加到Carseats数据框中。

我认为读起来更漂亮的代码是:

代码语言:javascript
复制
library(tree)
library(ISLR)
library(dplyr)

Carseats <- Carseats %>% mutate(High = ifelse(Sales <= 8, "No", "Yes"))
tree.carseats <- tree(High~ . -Sales, Carseats)

但是,尝试使用修改后的代码运行最后一行时会给出警告:

代码语言:javascript
复制
Warning message:
In tree(High ~ . - Sales, Carseats) : NAs introduced by coercion

当我尝试对

修改后的代码会抛出错误:

代码语言:javascript
复制
Error in y - frame$yval[object$where] : 
  non-numeric argument to binary operator

我的思考过程出了什么问题?

EN

Stack Overflow用户

回答已采纳

发布于 2020-03-19 19:15:36

不确定问题是从哪里产生的,但如果调用

的结果

..。

通常,不建议使用

直接访问数据,这可能会导致不可预知的行为。

代码语言:javascript
复制
library(tree)
library(ISLR)
library(dplyr)

data("Carseats")

Carseats <- Carseats %>% mutate(High = factor(if_else(Sales <= 8, "No", "Yes")))

tree.carseats <- tree(High~ . -Sales, data = Carseats)
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60755493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档