У меня есть фрейм данных с двумя столбцами строк
x <- data.frame(a = c("HH UH D", "L EH . M IH N", "EH K . S AE M . P EL"),
b = c("HH UH F", "L IY . V IH NG", "S AE M . P EL"))
Я пытаюсь подсчитать, сколько раз символы в столбце b, строке 1 соответствуют символам в столбец а, строка 1 . Затем столбец b, строка 2 до столбец a, строка 2 , et c. Затем добавьте этот счет в качестве нового столбца. Таким образом, результат этого вычисления будет примерно таким:
x <- data.frame(a = c("HH UH D", "L EH . M IH N", "EH K . S AE M . P EL"),
b = c("HH UH F", "L IY . V IH NG", "S AE M . P EL"),
c = c(2, 2, 5)) # HH and UH match, so 2
# L and IH match, so 2
# S, AE, M, P, and EL all match, so 5
Я попытался использовать что-то вроде этого:
a_characters <- str_split(x$a, " ")
b_characters <- str_split(x$b, " ")
stringcounting <- data.frame()
for (letter in b_characters){
count <- str_count(a_characters, letter)
sum_count <- sum(count)
stringcounting <- rbind(stringcounting, sum_count)
}
Но результат здесь: 1, 50, 20, а не 2, 2, 5 (нет смысла, почему). Я предполагаю, что что-то идет не так в моем for-l oop, а также, вероятно, в том, как я разбил свои строки на символы, но я не уверен, что именно.