Волк, панда и лорд Кельвин

11:11 

Xela_ris
Основные ошибки амебы устраняются путем устранения амебы
Пришел решительный момент для того, чтобы разобраться таки в особенностях языка R. Больше языков, названия которых состоят только лишь из одной буквы! Язык уже забавляет, например, следующим:
Команды
X<-1:16
dim(X)<-c(4,4)
создают матрицу размером 4 на 4. Если после этого сказать
dim(X)
то результатом будет размер матрицы - (4,4)

А если сказать компилятору
Y<-1:16
dim(Y)

то результатом будет NULL, а не (16, 1), как могло бы показаться.
Непривычно, что одна и та же функция может использоваться и для вывода размера объекта, и для, собственно, создания объекта. Не очевидно, что функция работает в случае матриц и выдает NULL в случае векторов.


Во дворе тем временем кто-то насвистывает главную тему из KIll Bill. Интересно, к чему бы это.

URL
Комментарии
2015-07-30 в 11:39 

Deus eX Machina.
R - клёвая штука, если у тебя есть все необходимые для работы либы и данных относительно не много.)
Но к примеру, выборка по 10000 ключей из миллиона записей и подсчёт простенькой статистики работала адски долго.
При этом, просто сортировка по этим-же ключам работала вполне бодренько.

2015-07-30 в 12:03 

Xela_ris
Основные ошибки амебы устраняются путем устранения амебы
Ну, я думаю, такая выборка где угодно будет не очень быстро работать.
Хотя под рукой вот прямо сейчас нет ничего, кроме собственно R, на чем бы я мог попроверять скорость работы подобных запросов.)

URL
2015-07-30 в 12:51 

Deus eX Machina.
Хм, кажется я плохо описал уровень странности проблемв.
Из этого миллиона я обрабатывал всего сто тысяч и один прогон занимал около 2х часов а гугление показывало, что у людей встречается похожая проблема, но как решить я не нашел(
Но в остальном всё было очень юзер-фрэндли.

2015-07-30 в 12:57 

Xela_ris
Основные ошибки амебы устраняются путем устранения амебы
Аа, понятно.) Буду знать.

Ну да, мне пока немного странен синтаксис, но в целом нравится. Я пока с консольки работаю, RStudio буду осознавать чуть позже.

URL
2015-07-30 в 12:57 

Заболекарь
Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Всё чуть хитрее. Это не одна и та же функция.

dim(X) <- c(4,4) является синтактическим сахаром для X <- `dim<-`(X, c(4,4))

Можно, скажем, определить `inc<-` <- function (n, value) n+value. Тогда:
> n <- 7
> inc(n) <- 8
> n
[1] 15
Хотя функции inc у нас как не было, так и нет)

А что касается dim(1:16), которое возвращает NULL — так ведь 1:16 относится к классу integer, а не, скажем, matrix или array или data.frame.

2015-07-30 в 13:21 

Xela_ris
Основные ошибки амебы устраняются путем устранения амебы
Эвон как все хитро. Спасибо за пояснения.)

URL
2015-07-30 в 13:51 

Заболекарь
Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Что касается скорости: рекомендую почитать.

     

главная