R 如何检查列是否具有有效值?

R 如何检查列是否具有有效值?,r,R,我需要在检查一个列是否有有效条目后,从现有列派生一个列。 输入 输出 ID ID_ENTRY 2 PRESENT NOT PRESENT 4 PRESENT 6 PRESENT NOT PRESENT NOT PRESENT 34 PRESENT 这里的一个基本R选项是使用ifelse: df$ID_ENTRY <- ifelse(ID != "", "PRESENT", "NOT PRESENT") df$ID\u条目通常,这可以通过is.na

我需要在检查一个列是否有有效条目后,从现有列派生一个列。 输入

输出

ID  ID_ENTRY
2   PRESENT
    NOT PRESENT
4   PRESENT
6   PRESENT
    NOT PRESENT
    NOT PRESENT
34  PRESENT

这里的一个基本R选项是使用
ifelse

df$ID_ENTRY <- ifelse(ID != "", "PRESENT", "NOT PRESENT")

df$ID\u条目通常,这可以通过
is.na解决:

dat[,"ID_ENTRY"] <- ifelse(is.na(dat[,"ID"]), "NOT PRESENT", "PRESENT")
使用可以使用


vec1假设ID是一个
因子

   ss <- data.frame(ID = c(2,' ',4,6,' ',' ',34))

 > ss$ID_ENTRY <- lapply(ss$ID,function(x){ifelse(is.na(as.numeric(as.character(x))),'NOTPRESENT','PRESENT')})
> ss
  ID   ID_ENTRY
1  2    PRESENT
2    NOTPRESENT
3  4    PRESENT
4  6    PRESENT
5    NOTPRESENT
6    NOTPRESENT
7 34    PRESENT
> 
ss$ID\u条目ss
ID\u条目
1 2出席
2不在场
3 4出席
4 6出席
5不在场
6不在场
7 34出席
> 

这些是空文本字符串还是数字?在R中,如果它是一个数值向量,你会得到NA。然后,您只需要执行
ifelse(!is.na(ID),“PRESENT”,“NOT PRESENT”)
您是否尝试过任何代码?gsub(“,”NOT PRESENT',ID)
dat[,"ID_ENTRY"] <- ifelse(is.na(dat[,"ID"]), "NOT PRESENT", "PRESENT")
dat[, "ID_ENTRY"] <- ifelse(dat[,"ID"]=="", "NOT PRESENT", "PRESENT")
vec1 <- c("a", "b", "c", "")
vec2 <- sapply(vec1, function(x){ifelse(x == "", "NOT PRESENT", "PRESENT")})
vec2
## "PRESENT"     "PRESENT"     "PRESENT" "NOT PRESENT" 
   ss <- data.frame(ID = c(2,' ',4,6,' ',' ',34))

 > ss$ID_ENTRY <- lapply(ss$ID,function(x){ifelse(is.na(as.numeric(as.character(x))),'NOTPRESENT','PRESENT')})
> ss
  ID   ID_ENTRY
1  2    PRESENT
2    NOTPRESENT
3  4    PRESENT
4  6    PRESENT
5    NOTPRESENT
6    NOTPRESENT
7 34    PRESENT
>