首页 > 解决方案 > 如何替换一个变量的特定值?

问题描述

我正在尝试使用“29.05”来替换 Enterdateofexam2 变量中的异常值(29.95),所以我在 R studio 中尝试了这段代码:

jimma3n<-jimma3 %>%
       select(Enterdateofexam2, Enterdayofexam, UniqueKey,MEDICALRECORD)%>%
       mutate(
            day=str_sub(Enterdateofexam2, 1,2),
            month=str_sub(Enterdateofexam2, 4,5)
              )%>%
      filter(as.numeric(day)>30 | as.numeric(month)>13) %>% #By Ethiopian calendar, each month has 30 days and total thirteen months 
      str_replace(Enterdateofexam2,"29.25","29.05")

然后我收到了来自 R 的错误信息,说:

str_replace(., Enterdateofexam2, "29.25", "29.05") 中的错误:未使用的参数 ("29.05"),

同样,我也不能使用 str_split 和单独的函数来实现我现在使用的“变异”。假设我想将“29.95”的字符拆分为“29”和“95”,如果我使用:

 "str_split(Enterdateofexam, ".", 2)

或者

separate(Enterdateofexam2,c("col1", "col2"), ".")

在这种环境下,它们都不起作用。我不知道是不是因为我的“Enterdateofexam2”的格式,也许它不是有效的向量?任何人都可以帮助弄清楚如何解决它?谢谢~~!

标签: r

解决方案


我们需要str_replacemutate

jimma3 %>%
       select(Enterdateofexam2, Enterdayofexam, UniqueKey,MEDICALRECORD)%>%
       mutate(
            day=str_sub(Enterdateofexam2, 1,2),
            month=str_sub(Enterdateofexam2, 4,5)
              )%>%
      filter(as.numeric(day)>30 | as.numeric(month)>13) %>% #By Ethiopian calendar, each month has 30 days and total thirteen months 
      mutate(Enterdateofexam2 = str_replace(Enterdateofexam2,"29.25","29.05"))

推荐阅读