> diamonds_train_processed <- prep(diamonds_recipe) %>% juice(diamonds_train) Warning: Using an external vector in selections was deprecated in tidyselect 1.1.0. ℹ Please use `all_of()` or `any_of()` instead. # Was: data %>% select(diamonds_train) # Now: data %>% select(all_of(diamonds_train)) See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>. This warning is displayed once every 8 hours. Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated. Error in `juice()`: ! Can't subset columns with `diamonds_train`. ✖ `diamonds_train` must be numeric or character, not a <tbl_df/tbl/data.frame> object. Backtrace: 1. prep(diamonds_recipe) %>% juice(diamonds_train) 17. rlang::cnd_signal(x)
时间: 2024-04-27 16:23:33 浏览: 124
这个错误的原因是因为`diamonds_train`是一个数据框(data frame),而不是字符向量(character vector)或数值向量(numeric vector)。因此,你需要传递`diamonds_train`中所有要保留的列的名称。修改后的代码如下:
```
diamonds_train_processed <- prep(diamonds_recipe) %>% juice(all_of(names(diamonds_train)))
```
这将使用`all_of()`函数将`names(diamonds_train)`转换为字符串向量,以便`juice()`函数可以正确选择处理后的数据集中的列。
相关问题
> diamonds_train_processed <- prep(diamonds_recipe) %>% juice(all_of(names(diamonds_train))) Error in `all_of()`: ! Can't subset columns that don't exist. ✖ Columns `cut`, `color`, and `clarity` don't exist. Backtrace: 1. prep(diamonds_recipe) %>% juice(all_of(names(diamonds_train))) 23. tidyselect::all_of(names(diamonds_train))
这个错误的原因是`all_of()`函数不能处理数据集中的非字符列(non-character columns),而`diamonds_train`数据集中包含非字符列。要解决这个问题,你需要使用`select()`函数选择所有需要的列,并将其传递给`juice()`函数。修改后的代码如下:
```
diamonds_train_processed <- prep(diamonds_recipe) %>%
bake(new_data = NULL) %>%
select(contains("price"), contains("cut"), contains("color"), contains("clarity")) %>%
juice()
```
这将使用`bake()`函数将处理后的数据集应用于`diamonds_train`数据集,并使用`select()`函数选择所有需要的列。然后,`juice()`函数将返回处理后的数据集。请注意,我使用了`contains()`函数来选择所有包含指定字符串的列。这将确保即使列的顺序发生变化,代码也不会出错。
请解释以下这段代码:attach(diamonds_sampled) volumn<-x*y*z size<-(volumn-min(volumn))/(max(volumn)-min(volumn))
这段代码的作用是将一个名称为diamonds_sampled的数据集附加到当前的工作空间中,并计算出该数据集中钻石的体积,然后对体积进行归一化处理,得到一个范围在0到1之间的大小指标。其中,x、y、z分别为钻石的长度、宽度和深度。通过对数据集中钻石的大小进行归一化处理,可以更好地比较不同钻石的大小。
阅读全文