Я хочу создать матрицу данных, которая сравнивает детское производство токена слова с производством других токенов слова.Так, например, в следующем примере набора данных я хочу сравнить «tedi» в строке 1 с каждой другой формой в столбце Actual
.
library(tibble)
production.data <- tribble(~Subject, ~Age, ~Target, ~Actual,
"subj1", "001126", "teddy", "tedi",
"subj1", "001126", "teddy", "dedi",
"subj1", "001126", "daddy", "dadi",
"subj1", "001126", "daddy", "didi",
"subj1", "001126", "daddy", "dati",
"subj1", "001126", "baby", "beibi",
"subj1", "001126", "Tigger", "tedi",
"subj1", "001126", "doggy", "didi",
"subj1", "001126", "milk", "mi")
В другом наборе данных, values
ниже,У меня есть набор значений для каждого согласного / гласного в каждом слове.Я хочу сравнить каждое значение для слова 1 с каждым значением всех других слов в списке (обратите внимание, что фактический набор данных values
на самом деле намного больше этого!).
library(tibble)
values <- tribble(~Target, ~Actual, ~C1_Sonorant, ~C1_Consonantal,
"teddy", "tedi", -1, 1,
"teddy", "dedi", 1, 1,
"daddy", "dadi", 1, 1,
"daddy", "didi", 1, 1,
"daddy", "dati", 1, 1,
"baby", "beibi", -1, 1,
"Tigger", "tedi", -1, 1,
"doggy", "didi", 1, 1,
"milk", "mi", 0, 0)
Мой вопрос: Как заставить R выполнять повторные вычисления (C1_Sonorant[1,]-C1_Sonorant[2,]
, C1_Consonantal[1,]-C1_Consonantal[2,]
) по всем строкам в данных values
?Я вполне уверен, что для этого потребуется цикл for, но я не уверен, как таким образом проводить сравнения между переменными.
Я думаю, что мне понадобятся разные матрицы для C1_Sonorant, C1_Consonantal,и т.д., и я ожидаю, что результат будет выглядеть примерно так:
# C1_Sonorant
output <- tribble(~Target, ~teddy, ~teddy, ~daddy, ~daddy,
"teddy", 0, -2, -2, -2,
"teddy", 2, 0, 0, 0,
"daddy", 2, 0, 0, 0,
"daddy", 2, 0, 0, 0)