У меня есть вектор символов x
и data.frame
y
следующим образом.Удалите пробел между выбранными словами в строке
x <- c("Pumpkin Helmet", "Warm Puppy", "Frisbee Sailing",
"Warm Puppy Frisbee Sailing", "Good Sport", "Masked Marvel",
"Spring Dance", "Spring Warm Dance Puppy", "Sock it to Me",
"Maskedspring Dancemarvel", "warm Puppy", "masked marvel",
"WARM PUPPY", " Spring Dance", "Warm Puppy Spring Dance",
"Warmspring Dancepuppy")
x
[1] "Pumpkin Helmet" "Warm Puppy" "Frisbee Sailing"
[4] "Warm Puppy Frisbee Sailing" "Good Sport" "Masked Marvel"
[7] "Spring Dance" "Spring Warm Dance Puppy" "Sock it to Me"
[10] "Maskedspring Dancemarvel" "warm Puppy" "masked marvel"
[13] "WARM PUPPY" " Spring Dance" "Warm Puppy Spring Dance"
[16] "Warmspring Dancepuppy"
a <- c("Masked", "Warm", "spring")
b <- c("Marvel", "Puppy", "dance")
y <- data.frame(a,b)
y
a b
1 Masked Marvel
2 Warm Puppy
3 spring dance
Я пытаюсь создать функцию, используя regex
для объединения слов в строке у, где они существуют в x
.
Я попробовал следующее, чтобы получить желаемый regex
, прежде чем пытаться apply
с x
и y
.
gsub("Spring(\\s+)Dance.*", "SpringDance", x)
gsub("spring(\\s+)Dance.*", "SpringDance", x)
gsub("Warm(\\s+)Puppy.*", "WarmPuppy", x)
Я до сих пор sruggling с regex
в R
, чтобы получить желаемый результат out
. Какой будет идеальный regex
в этом случае? Он должен соответствовать только целым словам, должен игнорировать регистр и удалять несколько промежутков между ними.
out <- c("Pumpkin Helmet", "WarmPuppy", "Frisbee Sailing",
"WarmPuppy Frisbee Sailing", "Good Sport", "MaskedMarvel",
"SpringDance", "Spring Warm Dance Puppy", "Sock it to Me",
"Maskedspring Dancemarvel", "warmPuppy", "maskedmarvel",
"WARMPUPPY", " SpringDance", "WarmPuppy SpringDance",
"Warmspring Dancepuppy")
[1] "Pumpkin Helmet" "WarmPuppy" "Frisbee Sailing"
[4] "WarmPuppy Frisbee Sailing" "Good Sport" "MaskedMarvel"
[7] "SpringDance" "Spring Warm Dance Puppy" "Sock it to Me"
[10] "Maskedspring Dancemarvel" "warmPuppy" "maskedmarvel"
[13] "WARMPUPPY" " SpringDance" "WarmPuppy SpringDance"
[16] "Warmspring Dancepuppy"
Yup. Последний из них был тем, что я хотел. Объяснение прекрасно понимает регулярное выражение. – Crops