如何解决将NA保留在grepl命令中
我需要将NA保留在变量中。
我有一个带名称的变量,有的是大写,有的是大小写混合。我想生成一个定义以下内容的变量 至少有一个小写的名字= 1 仅大写的名称= 0 NA = (我想保留它,因为我需要使用无响应进行回归)
我的代码如下,但我不知道如何实现NA
命令。
df <- grepl("[a-z]",x$variable)
解决方法
您可以使用ifelse
和is.na
首先检查NA,并且仅将grepl
的结果用于NA以外的值:
df <- ifelse(is.na(x$variable),NA,grepl("[a-z]",x$variable))
,
下面的函数返回
-
TRUE
,如果任何字符是小写字母; -
FALSE
,如果没有字符是小写字母; -
NA
(如果输入是NA
。
可以使用grepl
的所有参数,结果相同,除了存在NA
时的行为。
na_grepl <- function(pattern,x,...){
y <- grepl(pattern,...)
is.na(y) <- is.na(x)
y
}
x <- c("abc","ABc","ABC",NA)
na_grepl("[a-z]",x)
#[1] TRUE TRUE FALSE NA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。