Таким образом, это работает с использованием пакета zoo, чтобы сначала избавиться от NA, а затем выполнить сравнение со смещением на одну строку.
zed <- zed %>%
dplyr::mutate(possIdTemp = zoo::na.locf(possessionName)) %>%
dplyr::mutate(isNewPossession = c(1, ifelse(possIdTemp[2:length(possIdTemp)] != possIdTemp[1:(length(possIdTemp)-1)], 1, 0)))
Пожалуйста, я открыт для лучшего решения этой проблемы, в частности, мне не нравится строка кода c(1, ifelse(possIdTemp[2:length(possIdTemp)] != possIdTemp[1:(length(possIdTemp)-1)], 1, 0))
- спасибо!
BDFL соглашается. Посмотрите Бодрость духа 367 - Новый Супер для 2,6 и PEP 3135 - Новый Супер для 3,0.
Ваши пожелания осуществляются:
Просто используйте python 3.0. В нем Вы просто используете super()
и это делает super(ThisClass, self)
.
Документация здесь. Пример кода из документации:
class C(B):
def method(self, arg):
super().method(arg)
# This does the same thing as: super(C, self).method(arg)
можно также постараться не написать имя реального класса в более старых версиях Python при помощи
def __init__(self):
super(self.__class__, self)
...