首页 > 解决方案 > (R) - 检查子字符串是否包含在较大的字符串中并更改值

问题描述

我正在尝试检查我的数据集中的一个列,该列是所有字符值,其值如下:“1”、“2”、“12”、“NAME1”、“NAME2”、...

我正在尝试挑选具有非数字名称的值并将它们更改为 99。这是我到目前为止所尝试的:

install.packages("stringi")
library(stringi)
stacked_data$NewCol=ifelse(stri_detect_fixed(stacked_data$OldCol,"NAME")==TRUE,99,stacked_data)

运行此代码时收到此错误消息:

Error in table(stacked_data$NewCol) : 
attempt to make a table with >= 2^31 elements

有人可以帮我指出正确的方向吗?任何帮助,将不胜感激!谢谢!

标签: rsubstringgreplstringi

解决方案


一种更简单的选择是

  i1 <- is.na(as.numeric(df1$col))
  df1$col[i1] <- 99

推荐阅读