LINUX.ORG.RU

[R] нубские вопросы

 


0

2

1 Никак не могу понять как посчитать скользящее среднее. И в манах не нахожу - казалось бы - элементарная вещь, ан нет - ниасилил...
2 Заменить в векторе определённые значения на другие, как? Смысл такой - есть вектор, в котором все отрицательные значения надо заменить на 0. Можно как-то без циклов обойтись?
3 Есть вектор вида (5, NA, NA, 7, NA, NA, NA, 9 ну и тд.) Как построить прямую линейной регрессии?

★★★★★

Ответ на: комментарий от Suntechnic

если правильно понял

> sort(c(1,2,3,5,4,6.1,7,8,9),index.return = TRUE)
$x
[1] 1.0 2.0 3.0 4.0 5.0 6.1 7.0 8.0 9.0

$ix
[1] 1 2 3 5 4 6 7 8 9

> sort(c(1,2,3,5,4,6.1,7,8,9),
       index.return = TRUE)$ix[c(1, 
                                 length(sort(c(1,2,3,5,4,6.1,7,8,9),
                                             index.return = TRUE)$ix))]
[1] 1 9

воткнуть в tapply()

PS раньше мне запомнилось что отсортировать было не судьба без привычки, сорт по умолчанию возвращал индекс (писали x[sort(x)]), теперь тоже проблема :) хотя может что то и путаю.

psv1967 ★★★★★
()
Ответ на: комментарий от Suntechnic

> tapply(1:10,c(1,1,1,1,1,2,2,2,2,2), max)
 1  2 
 5 10 
> tapply(1:10,c(1,1,1,1,1,2,2,2,2,2), which.max)
1 2 
5 5 

по моему проблема, придется что бы абсолютный индекс получить обрабатывать результат

tapply(sort(исходный_вектор,index.return = TRUE)$ix, фактор, max)

ну и соответственно для мин

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Как раз абсолютный индекс проблем у меня не вызвал:

x <- c(1:10,1:6)
uniqPrdFactor <- c(1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3)
maxInFactors <- tapply(x, uniqPrdFactor, which.max)
lengthFactors <- tapply(x, uniqPrdFactor, length)
# абсолютные адреса последнего элемента каждого диапазона
endIndexFactor <- cumsum(lengthFactors)
# приведём их к абсолютным
# прибавим к относительным адресам векторов абсолютные адреса концов
# предыдущих периодов
maxInFactors <- maxInFactors + c(0,endIndexFactor[-length(endIndexFactor)])

Вроде правильно. (В смысле у меня это работает как надо, а когда переносил сюда код мог понапортачить, но проверил - вроде пашет).

Хотя 4 строчка вызывает конечно вопросы - некрасиво как-то...

Suntechnic ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.