Я создаю массив, который содержит десять тысяч векторов, где каждый вектор имеет 4 символьных вектора, которые могут быть либо «выиграть», либо «проиграть».
Затем я хочу вызвать каждый отдельный вектори использовать функцию «any» для возврата TRUE, если любой символьный вектор в каждом векторе равен «win», и false в противном случае.АКА, если вектор c («потерять», «потерять», «потерять», «потерять»), он возвращает ЛОЖЬ, а в противном случае - ИСТИНА.
Я, конечно, хочу сделать все это сразу,и я подумал, что это можно сделать либо пропустив массив векторов через функцию «any» и получить обратно массив, как это разрешено другой функцией, либо используя функцию «apply» с массивом и «any () ==»ИСТИНА аргументы.
B <- 10000
set.seed(1)
a <- replicate(B, sample(c("lose","win"), 4, replace = TRUE, prob = c(0.6, 0.4)))
Вариант 1
celtic_wins <- any(a[,1:10000] == "win")
ИЛИ
Вариант 2
celtic_wins <- apply(a, any() == "win")
Что на самом деле происходит в обоих случаях (Я думаю, но не могу быть уверен), что массив разбирается на вектор векторов, который затем обрабатывается как один длинный вектор из 40000 элементов, проверяет, существует ли один символьный вектор "win" во всем лоте (которыйкак 99.99999999 ....% кейса) и, таким образом, возвращает один оператор TRUE, а не 10 000 логических значений.
Если это так, я не знаю, как создать обходной путь;пожалуйста помогите?