小编Nic*_*Nic的帖子

错误:SET_STRING_ELT() 的值必须是 dplyr group_by 中的“CHARSXP”而不是“字符”

group_by我在使用时出现超级随机错误,dplyr如下所示

dat %>% group_by(variable) %>% mutate(score = score[1])
Run Code Online (Sandbox Code Playgroud)

其中datdata.frame带有因子/字符的列variablescore是双精度值。我得到的错误是这样的:

Value of SET_STRING_ELT() must be a 'CHARSXP' not a 'character'
Run Code Online (Sandbox Code Playgroud)
  • 无论 的名称如何,都会发生这种情况variable
  • 无论计算如何(例如score[1])。
  • 我可以按任何其他变量进行分组。
  • 这两个变量看起来都很好。variable我可以用or进行各种计算score。变量仅包含重复条目“arima”和“prophet”,没有NAs。
  • 此外,错误消息仅有时出现。大多数情况下,R 会话只是由于致命错误而终止。

这让我疯狂...

我用谷歌搜索了错误,但找不到好的帮助,除了缩小范围,这就是我所做的,即简单的group_by计算。此外,我重新启动了 R 会话,重新启动了计算机,更新了我的 R 版本和软件包dplyr,现在版本为 1.07。我在 Ubuntu 20.04.3 LTS 上使用 R 版本 4.1.1。

有什么想法可能会产生此错误吗?

编辑 我无法提供带有模拟数据的可重现样本,因为它只发生在特定数据上。在这里,我上传了导致错误的数据https://filebin.net/9pywc544hsmgm2p3

然后运行以下代码

A <- readRDS("dat.rds") %>% 
    group_by(variable) %>% 
    mutate(score = score[1])
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果你按 …

r dplyr

6
推荐指数
1
解决办法
3714
查看次数

标签 统计

dplyr ×1

r ×1