Я новичок в R и программировании в целом. У меня есть два кадра данных, из которых я хочу вычислить вероятность Win из подсчетов двух разных кадров данных Wins and Losses. Я хочу проверить список и проверить, появятся ли значения для оценки в обоих списках, если они это сделают, я хочу выполнить и выполнить операцию, если они этого не сделают, я хотел бы просто вернуть NA.R, если функция над двумя столбцами разной длины
df W df L
score freq score freq
5 10 5 10
10 10 10 5
7 2 3 2
4 1
Вот моя функция я написал до сих пор:
test <- function(W, L){
if (W$score == L$score) {
total <- W$freq + L$freq
W$freq/total
}
else NA
}
Я хочу выход быть список длины W:
0.5
0.66
NA
NA
Это прекрасно работает для первое значение в кадре данных, но я получаю следующую ошибку: the condition has length > 1 and only the first element will be used
. Я читал здесь в StackOverflow, что вместо этого я должен использовать функцию ifelse
, поскольку это будет проходить через все строки. Однако, когда я попробовал это, у меня возникла проблема с тем, что два столбца фрейма данных имеют разную длину. Я хочу повторно использовать эту функцию для множества разных фреймов данных, и они всегда будут иметь разную длину, поэтому я бы хотел, чтобы это было для решения.
Любая помощь будет высоко оценена, и я могу уточнить, если в настоящее время неясно.
Благодаря
Удивительный, спасибо, не подумал об этом! – 0mm3
Хм, у меня все еще есть проблема, потому что два разных кадра данных имеют Wins или Losses, поэтому при слиянии я получаю общее значение для частоты, но я не знаю, были ли некоторые победы или потери. Есть предположения? Я буду обновлять оригинальный вопрос, чтобы отразить это. – 0mm3
Что вы пытаетесь достичь? Измените вопрос и добавьте желаемый результат. – bartektartanus