nzd$date <- format(as.Date(nzd$date), "%Y/%m/%d")
В приведенном выше фрагменте кода есть две ошибки. Прежде всего, когда вы читаете nzd$date
внутри as.Date
, вы не указываете, в каком формате вы его подаете date
. Таким образом, он пытается установить формат по умолчанию для его чтения. Если вы видите документ help
, ?as.Date
, вы увидите
format. Символьная строка. Если не указано, он попытается «% Y-% m-% d», а затем «% Y /% m /% d» на первом элементе, отличном от NA, и сообщите об ошибке, если они не работают. В противном случае обработка выполняется через strptime
blockquote>. Вторая ошибка: даже если вы хотели бы прочитать ее в формате
%Y-%m-%d
, внутриformat
вы написали"%Y/%m/%d"
.Теперь правильный способ сделать это:
> nzd <- data.frame(date=c("31/08/2011", "31/07/2011", "30/06/2011"), + mid=c(0.8378,0.8457,0.8147)) > nzd date mid 1 31/08/2011 0.8378 2 31/07/2011 0.8457 3 30/06/2011 0.8147 > nzd$date <- format(as.Date(nzd$date, format = "%d/%m/%Y"), "%Y-%m-%d") > head(nzd) date mid 1 2011-08-31 0.8378 2 2011-07-31 0.8457 3 2011-06-30 0.8147
Нет причины, по которой вы не можете объединить опцию A и опцию B, чтобы вы сначала расширили с HTMLInputElement
базовый класс, а затем позже добавили его с более конкретными классами.
class BasicCustomHTMLElement extends HTMLInputElement {
}
class CustomInput extends BasicCustomHTMLElement {
}
Если вы хотите, чтобы общий набор функций расширял число встроенных классов, вы можете использовать mixins .
const BaseClassMixin = (superclass) => class extends superclass {
};
class CustomInput extends BaseClassMixin(HTMLInputElement) {
}
class CustomTextArea extends BaseClassMixin(HTMLTextAreaElement) {
}
Однако, в настоящее время только Chrome поддерживает расширение встроенных элементов , поэтому его не рекомендуется использовать в реальных условиях.