Должен ли @TestPropertySource (properties = {& ldquo; ticketing.profile = test & rdquo;}) автоматически обновлять значение системного свойства?

Как ваш первоначальный подход, так и текущий ответ создают объект с тем же размером, что и m (или df) при создании m<0 (матричный подход быстрее, потому что меньше внутреннего копирования с [<- по сравнению с [<-.data.frame

Вы можете использовать lapply и replace, тогда вы смотрите только на вектор или length (nrow(df)) каждый раз и не копируете так много

df <- as.data.frame(lapply(df, function(x){replace(x, x <0,0)})

Если вы используете data.table, тогда большая часть неэффективности времени работы data.frame памяти (и) будет удалена. Это было бы идеально для большой ситуации с данными как ваш.

library(data.table)
# this really shouldn't be 
DT <- lapply(df, function(x){replace(x, x <0,0)})
# change to data.table
setattr(DT, 'class', c('data.table','data.frame'))
# or 
# DT <- as.data.table(df, function(x){replace(x, x <0,0)})

Вы можете установить ключи во всех столбцах, а затем заменить по ссылке на значения клавиш менее 0

0
задан dushkin 26 February 2019 в 11:57
поделиться

1 ответ

@TestPropertySource(properties = {"ticketing.profile=test"}) 

Не будет НЕ влиять на системное свойство ticketing.profile.

Ваш код не должен использовать системное свойство для получения значения, так как это означает, что вы не можете переопределить его.

В коде должен использоваться механизм выбора свойств пружины, который может быть привязан к системным свойствам, если не найден.

Типичный подход - установить свойство по умолчанию в коде (или в тесте, как вы сделали), а затем переопределить его, установив системное свойство.

0
ответ дан Michael Wiles 26 February 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: