You can use purrr::map_int() for making the count, take a look at this example (BTW please use a copy/paste friendly format for sharing data like in the example).
df <- data.frame(stringsAsFactors = FALSE,
column_1 = c("A well spent weekend\n\ncaptured photooftheday foodie food foodporn igers lunch iphonography iphonexsmax",
"wallpapers iPhone\niPhoneXSMax iPhoneXS iPhoneX iPhoneXR\n\nEarth Fantasy v wallpaper for\n\n iPhone XS MAXiPhone XR",
"This sunset was straight out of a commercial\n\n#hotonmoment #omentanamorphic #hotoniphone #phonexsmax h.o/JkMHR7Db",
"Were giving away another unlocked GB iPhoneXSMax this September for free Follow the link to earn your chances to win like",
"wallpapers iPhone\niPhoneXSMax iPhoneXS iPhoneX iPhoneXR\n\nDigital Crystals wallpaper for\n\n iPhone XS MAXiPhone XR",
"AMAZON US WhitestoneDomeGlass\nThe Best Review For iPhoneXsMax Dome Glass screen protector\nThe glass feels grea",
"wallpapers\n\nImagination Planet wallpaper for\n\n iPhoneXSMAX\n iPhoneXR\n iPhoneXS\n iPhoneX\n ALL other iPhone like",
"well AMAZON US WhitestoneDomeGlass\nThe Best Review For iPhoneXsMax Dome Glass screen protector\nThe glass feels grea"),
column_2 = c("earn", "good", "like", "dislike", "well", "joy", "sad", "worry"),
result = c(1L, 0L, 2L, 0L, 1L, 0L, 0L, 0L)
)
library(dplyr)
library(purrr)
library(stringr)
df %>%
bind_cols(result_2 = map_int(df$column_2, ~sum(str_count(df$column_1, paste0("\\s", ., "\\s?") )))) %>%
select(column_2, result, result_2)
#> column_2 result result_2
#> 1 earn 1 1
#> 2 good 0 0
#> 3 like 2 2
#> 4 dislike 0 0
#> 5 well 1 1
#> 6 joy 0 0
#> 7 sad 0 0
#> 8 worry 0 0
Created on 2019-05-19 by the reprex package (v0.3.0)