Error in `tbl_at_vars()`: ! Can't subset columns with `GZL`. ✖ `GZL` must be numeric or character, not a <data.frame> object. Run `rlang::last_trace()` to see where the error occurred.
时间: 2023-07-28 19:07:05 浏览: 362
这个错误提示表明,在 `GZL_12` 数据集中,`GZL` 列的数据类型不是数值型或字符型,而是一个数据框类型,导致无法对它进行汇总计算。你可以使用 `class()` 函数检查一下 `GZL` 列的数据类型,例如:
```
class(GZL_12$GZL)
```
如果发现数据类型确实不是数值型或字符型,你需要对数据进行清洗或转换,使其符合 `summarise()` 函数的要求。可能需要检查一下数据中是否有缺失值或者非法字符,或者尝试使用 `as.numeric()` 函数将数据转换为数值型。
相关问题
> 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)
这个错误的原因是因为`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()`函数可以正确选择处理后的数据集中的列。
Error in `group_by()`: ! Must group by variables found in `.data`. ✖ Column `first_column` is not found. Run `rlang::last_trace()` to see where the error occurred. > rlang::last_trace() <error/rlang_error> Error in `group_by()`: ! Must group by variables found in `.data`. ✖ Column `first_column` is not found. --- Backtrace: ▆ 1. ├─data %>% group_split(first_column) 2. ├─dplyr::group_split(., first_column) 3. └─dplyr:::group_split.data.frame(., first_column) 4. ├─dplyr::group_by(.tbl, ...) 5. └─dplyr:::group_by.data.frame(.tbl, ...) Run rlang::last_trace(drop = FALSE) to see 2 hidden frames.报错是怎么回事
这个报错的意思是在使用`group_split`函数时,指定的`first_column`列不存在。可能是因为您在代码中使用了错误的列名或者列索引。请检查一下您的代码,确保列名或者列索引是正确的。
此外,如果您不确定列名或者列索引的正确性,可以使用以下代码来输出Excel表格的列名或者列索引:
```r
# 读取Excel表格数据
data <- read_excel("yourfile.xlsx")
# 输出列名
colnames(data)
# 输出列索引
seq_along(data)
```
在以上代码中,`colnames`函数用于输出Excel表格的列名,`seq_along`函数用于输出Excel表格的列索引。您可以根据输出的结果,确定正确的列名或者列索引,然后在代码中使用它们。
阅读全文