하나의 문자열 (변수)을 가진 여러 변수가있는 데이터 프레임이 있는데 an
변수의 문자열이 string
열에 나타나는지 확인하려고합니다. 각 an
변수에는 해당하는 cn
변수가 있습니다. 예를 들어 c1
에 a1
의 문자열이 string
에 나타나는 경우 Checked
이 포함되도록하고 싶습니다. 나는 이것을 위해 루프 솔루션을 개발했는데 (이 포스트의 끝에있는 예제 데이터), 더 빠르고 코드 작성하기 쉬운 패밀리 솔루션이 있는지 궁금해하고 있단 말인가? 실제 데이터에는 100 개 이상의 a 및 c 변수가 있습니다.여러 for 루프에 패밀리 솔루션을 적용 하시겠습니까?
#For loop solution
for (var in seq(2, 10, 2)){
for (i in 1:nrow(df)){
df[i, var]<-ifelse(grepl(df[i, var-1], df$string[i])=="TRUE", "Checked", "Unchecked")
}
}
#### Example data ####
a1<-c("zebra", "giraffe", "elephant")
a2<-c("hyena", "monkey", "antelope")
a3<-c("badger", "deer", "kangaroo")
a4<-c("tiger", "lion", "coyote")
a5<-c("penguin", "bear", "gorilla")
c1<-""
c2<-""
c3<-""
c4<-""
c5<-""
string<-c("elephant/bear/coyote/penguin/monkey",
"giraffe/antelope/monkey/gorilla/tiger",
"elephant/antelope/kangaroo/coyote/gorilla")
df<-cbind.data.frame(a1, c1, a2, c2, a3, c3, a4, c4, a5, c5, string,
stringsAsFactors=F)