Error in `mutate()`: ℹ In argument: `关键词 = `%>%`(...)`. Caused by error: ! `关键词` must be size 1208 or 1, not 7928. Run `rlang::last_trace()` to see where the error occurred.
时间: 2023-07-28 09:10:57 浏览: 2910
这个错误是因为你在使用 `%>%` 这个符号进行数据处理时,可能出现了数据维度对不上的情况。具体来说,`关键词` 这个变量的维度应该是 1208 或者 1,但是你传递的数据维度是 7928,导致出现了错误。你可以运行 `rlang::last_trace()` 命令来查看具体出现错误的位置,然后检查一下你的代码逻辑和数据处理过程,看看是否有问题。
相关问题
Error in `mutate()`: ℹ In argument: `data = lapply(...)`. Caused by error in `FUN()`: ! 'list' object cannot be coerced to type 'double'
这个错误通常是由于在使用dplyr包中的mutate()函数时,将列表作为参数传递而不是数据框。这可能是由于使用lapply()函数而不是do.call()函数导致的。lapply()函数返回一个列表,而mutate()函数需要一个数据框作为参数。因此,您可以尝试使用do.call()函数来解决这个问题。下面是一个例子:
```R
# 创建一个数据框
df <- data.frame(x = c(1, 2, 3), y = c(4, 5, 6))
# 使用lapply()函数创建一个新列
new_col <- lapply(df, sum)
# 将新列添加到数据框中
df <- mutate(df, z = do.call(cbind, new_col))
# 输出结果
df
```
Error in `mutate()`: ℹ In argument: `textrank.key = map(hire_words$word_tag, extract_keywords)`. Caused by error in `map()`: ℹ In index: 1. ℹ With name: text. Caused by error in `keywords()`: ! 不是所有的"keywords" %in% class(jiebar)都是TRUE
根据你提供的错误信息,问题出在`keywords()`函数上,因为它提示`! 不是所有的"keywords" %in% class(jiebar)都是TRUE`。这个错误通常是由于`keywords()`函数的参数传递有误导致的。我建议你重新检查一下`keywords()`函数的定义和调用方式,确保所有参数都正确传递。
根据你的代码,`keywords()`函数是在`extract_keywords()`函数中被调用的,所以需要检查该函数的定义和调用方式。你可以使用以下代码来查看`extract_keywords()`函数的定义:
```
# 查看函数定义
extract_keywords
```
在函数定义中检查`keywords()`函数的参数,确保传递了所有必要的参数。如果是传递的`jieba`参数导致的错误,那么你需要检查`jieba`对象的定义,确保它符合`keywords()`函数的要求。例如,如果`jieba`对象是一个列表,那么你可以使用以下代码来转换它:
```
# 将 jieba 对象转换为一个分词器函数
wk <- worker(byword = TRUE, user = NULL, stop_word = NULL, char = TRUE)
```
这样转换后的`wk`对象就可以作为`keywords()`函数的参数了。然后你可以像下面这样修改`extract_keywords()`函数:
```
# 修改 extract_keywords() 函数
extract_keywords <- function(dt) {
textrank_keywords(dt$word, relevant = str_detect(dt$tag, "^n"), ngram_max = 2) %>%
keywords(jieba = wk) # 添加 jieba 参数
}
```
修改后的函数将在调用`keywords()`函数时,传递一个符合要求的`jieba`参数,从而避免出现参数传递错误导致的问题。
阅读全文