已解决:tidyr 的 Replace_na 函数中出现“值丢失”错误

问题描述 投票:0回答:1

在我的数据集(参与者 ID)的一列中,由于我的实验中早期的编程错误,我有一个 NA 值。但是,我知道应该存在的确切值,并尝试用这个确切值替换 NA。 奇怪的是,它一直有效 - 现在我再次下载了相同的数据集,只是有更多/新的参与者数据,并尝试运行我的 R 脚本,它一遍又一遍地给我同样的错误。

前两行是我最初使用的代码(并且有效),以下是不同的尝试,但导致相同的错误消息:

data_rawScales %>% 
  replace_na(list(P_ID = '56138320cd28ef4dc6be3d0')) -> data_rawScales

data_rawScales %>% dplyr::mutate(P_ID = replace_na(P_ID, "56138320cd28ef4dc6be3d0"))

我收到的错误消息如下:

Error in replace_na(., list(P_ID = "56138320cd28ef4dc6be3d0")) : argument "value" is missing, with no default" 

我真的不知道为什么它一开始有效,现在却不起作用了。我在更新R studio之前和之后尝试了几次,清理环境并完全退出R Studio。我还检查了该列,这确实是唯一缺少的值。我在互联网上搜索但找不到与此错误消息相关的任何内容。有知道这段代码突然出了什么问题吗? 谢谢!

编辑:

我自己找到了答案,显然函数replace_na被另一个包屏蔽了,下面的代码现在可以工作了:

data_rawScales %>%    tidyr::replace_na(list(P_ID = '56138320cd28ef4dc6be3d0')) -> data_rawScales
r replace tidyr na
1个回答
0
投票

你可以试试这个:

data_rawScales %>% 
  dplyr::mutate(P_ID = ifelse(is.na(P_ID), 
                                    replace_na(P_ID, "56138320cd28ef4dc6be3d0"),
                                    P_ID))
© www.soinside.com 2019 - 2024. All rights reserved.