В PHP вам нужно либо использовать функции multibyte , либо включить mbstring.func_overload . Таким образом, такие вещи, как strlen, будут работать, если у вас есть символы, которые принимают более одного байта.
Вам также потребуется определить набор символов ваших ответов. Вы можете использовать AddDefaultCharset, как указано выше, или написать PHP-код, который возвращает заголовок. (Или вы можете добавить тег META в свои HTML-документы.)
Хороший вопрос, но, на мой взгляд, это не должно было привести к головной боли отладки major , поскольку она достаточно четко документирована в нескольких местах на странице руководства для aggregate
.
Сначала в разделе использования:
## S3 method for class 'formula'
aggregate(formula, data, FUN, ...,
subset, na.action = na.omit)
Позже в описании:
blockquote>
na.action
: функция, которая указывает, что должно происходят, когда данные содержат значения NA. По умолчанию следует игнорировать отсутствующие значения в данных переменных.
Я не могу ответить на , почему режим формулы был написан по-другому - это что-то авторам авторам придется ответить --- но используя приведенную выше информацию, вы, вероятно, можете использовать следующее:
aggregate(.~Name, M, FUN=sum, na.rm=TRUE, na.action=NULL) # Name Col1 Col2 # 1 name 1 2
Если вы хотите, чтобы версия формулы была эквивалентной, попробуйте это:
M = data.frame( Name = rep('name',5), Col1 = c(NA,rep(1,4)) , Col2 = rep(1,5))
aggregate(. ~ Name, M, function(x) sum(x, na.rm=TRUE), na.action = na.pass)