У меня есть следующая таблица:
table(dta$recipient,dta$treat)>0
1 2 3 4 5 6
couple TRUE TRUE FALSE FALSE FALSE FALSE
female FALSE FALSE TRUE TRUE FALSE FALSE
male FALSE FALSE FALSE FALSE TRUE TRUE
И у меня также есть переменная dta $ Treat_new, которая содержит перестановку dta $ Treat.Как я могу сделать переменную dta $ receient_new с соответствующими значениями для получателя?Обратите внимание, что уровни (dta $ получатель) и уровни (dta $ Treat) могут изменяться.Таким образом, ожидаемый результат будет новой переменной, такой как dta $ recient:
> head(dta$recipient_new)
[1] male female male couple male male
Levels: couple female male
, которая соответствует dta $ Treat_new
> head(dta$treat_new)
[1] 5 3 6 1 5 6
Вот воспроизводимый пример:
set.seed(12345)
recipient <- rep(c("male","female"), times=2)
treat <- rep(1:4, times=2)
df <- data.frame(recipient,treat)
table(df$recipient, df$treat)
df$treat_perm <- sample(treat)
df$treat_perm
[1] 2 3 1 4 2 1 3 4
Я хочу знать, как получить соответствующих получателей, поэтому:
df$recipient_perm
[1] female male male female female male male female