이 예제 데이터가 있습니다.
df<-data.frame(col=c(rep("YES",9),"NO"))
list<-list()
for(i in 1:10){
if(df[i,1]=="YES"){
list[[i]]<-"YES"
}
if(df[i,1]=="NO"){
list[[i]]<-NULL
}
}
문제는이 루프 이후
length(list)=9
결국 NULL 때문이라는 것을 알았습니다. NULL 인 경우에도 마지막 출력을 표시하기 위해 루프를 다시 작성하는 방법에 대한 조언이 있습니까?
이것은 작동합니다.
df<-data.frame(mycol=c(rep("YES",9),"NO"))
mylist<-list()
for(i in 1:10){
if(df[i,1]=="YES") mylist[i] <- "YES"
if(df[i,1]=="NO") mylist[i] <- list(NULL)
}
또는 다음을 사용할 수 있습니다 ifelse
.
ifelse(df$mycol=="YES",list("YES"),ifelse(df$mycol=="NO",list(NULL),NA))
좋은 설명이있는 관련 게시물이 있습니다 . R의 목록 요소에 NULL을 할당합니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다