【问题标题】:'Can't subset columns that don't exist' for decision trees决策树的“不能对不存在的列进行子集化”
【发布时间】:2021-05-28 05:38:55
【问题描述】:

您好,我正在用 R 编写决策树,运行代码时出现此错误:

错误:无法对不存在的列进行子集化。 x 列MemberNormalNormalMemberNormal 等不存在。

df 是一个数据框。你能帮我吗 ?谢谢你。这是我的代码:

library(rpart)
library(caret)
library(dplyr)
library(rpart.plot)
library(xlsx)
library(caTools)
library(data.tree)
library(elemstatlearn)

#Loading Excel File
library(readxl)
FINALDATA <- read_excel("Desktop/FINALDATA.xlsm")
View(FINALDATA)
df <- FINALDATA
View(df)

#Selecting the meaningful columns for prediction
df <- select(df, City, df$`Customer type`, df$Gender, df$Quantity, df$Total, df$Date, df$Time, df$Payment, df$Rating)```

【问题讨论】:

  • 你不需要在select 内的df$select(mtcars, mtcars$mpg) 返回错误。而是select(mtcars, mpg)
  • 感谢您的回答。但是,当我写:df Customer type, Gender, Quantity, Total, Date, Time, Payment, Rating) 我有同样的错误 =(
  • 我有没有提到你不需要df$df$Customer type 应该是Customer type 在反引号内
  • 这是它的作用:df
  • 您可以复制/粘贴我在解决方案中提供的代码

标签: r dataframe decision-tree


【解决方案1】:

dplyr::select 的正确用法是引用或未引用的列名,而不是该列的值(df$City - 提取该列的值)

library(dplyr)
df1 <- select(df, City, `Customer type`, Gender, 
        Quantity, Total, Date, Time, Payment, Rating)

此外,还有许多select-helpers 可用(starts_withends_withmatches)或使用范围,即如果我们有兴趣选择从 City 到 Rating 的所有列,请使用 :

df1 <- select(df, City:Rating)

【讨论】:

  • 非常感谢!!
猜你喜欢
  • 2023-02-03
  • 2020-12-25
  • 1970-01-01
  • 2021-11-27
  • 2019-05-14
  • 1970-01-01
  • 2014-02-07
  • 2016-03-08
  • 1970-01-01
相关资源
最近更新 更多