У меня есть два dfs, как dim [1] 54 210
. Один (давайте назовем его dfx
) содержит 1, 0s, чтобы отметить неправильные и правильные ответы на тест. dfy
содержит время отклика для каждого из этих вопросов. Я хотел бы подмножество (merge()
(возможно) все элементы из dfy
, которые == 1 в dfx
Данные в широком формате, ID = rownames и столбцов представляют каждый вопросзначения подмножества в df на основе значений в другом df
Пример:..
DFX
Q1 Q2 Q3 Q4 Q5 …
1 1 1 1 1
1 1 1 1 1
1 1 0 1 1
1 1 0 1 1
DFY
Q1_3 Q2_3 Q3_3 Q4_3 Q5_3 ...
16.01 8.23 18.13 11.14 18.03
17.25 7.50 11.72 10.84 7.24
Я бы нужен ДФЗ, который является подмножеством DFY, в котором, если dfx[Q1] == 1
, dfy [Q1_3]
возвращается как dfz[Q1_3]
, в противном случае NA
или dfx[Q1]
(что равно 0).
я могу это сделать, если я указываю COLS по
dfz<- cbind(ifelse(dfx$Q1 == 1, dfy$Q1_3, dfx$Q1))
однако я не знаю, как применить его для всей ФР.
Любые идеи?
У вас есть уникальный идентификатор в ваших кадрах данных (я имею в виду, как столбец 'id', который позволяет вам сопоставлять каждую строку в' dfx' с строкой в 'dfy')? Или вы гарантируете, что порядок строк соответствует обоим кадрам данных? – Barranka
@Barranka: Я могу вставить столбец id, однако rownames == для обоих dfs –
Это может быть что-то простое, как 'dfy * dfx'. Если dfx имеет только одни и нули, то произведение обоих будет возвращать ноль для неверных ответов и значение 'dfy' для правильных. – Barranka