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
>