Если вы хотите посчитать количество появлений впоследствии, вы можете использовать функцию sapply
:
index<-sapply(1:length(numbers),function(x)sum(numbers[1:x]==numbers[x]))
cbind(numbers, index)
Выход:
numbers index
[1,] 4 1
[2,] 23 1
[3,] 4 2
[4,] 23 2
[5,] 5 1
[6,] 43 1
[7,] 54 1
[8,] 56 1
[9,] 657 1
[10,] 67 1
[11,] 67 2
[12,] 435 1
[13,] 453 1
[14,] 435 2
[15,] 324 1
[16,] 34 1
[17,] 456 1
[18,] 56 2
[19,] 567 1
[20,] 65 1
[21,] 34 2
[22,] 435 3
После МНОЖЕГО попыток я наткнулся на решение, которое предотвратило такое поведение.
Проблема заключалась в индикаторе SoapClient keep_alive
.
Создавая SoapClient
с ложным флагом keep_alive
$soapClient = new \SoapClient($wsdl,[
'trace' => 1,
'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
'keep_alive' => false,
'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
'cache_wsdl' => WSDL_CACHE_MEMORY
]);
, вы запрещаете ему устанавливать соединение с поддержкой активности, поэтому каждый вызов будет создавать совершенно новое соединение с веб-службой.
Это не может быть супероптимизировано, но в моем долгосрочном контексте сценария предотвращает странную ошибку, которая у меня была, и проверяя это в течение долгого времени (часы), ошибка никогда не возвращалась