Векторизация это для цикла: применение функции к субиндексам? - PullRequest
1 голос
/ 16 марта 2011

Есть ли способ векторизовать следующее?

# x: some vector
# index: some vector of indeces
n <- length(index)
y <- rep(NA, n)
for (i in 1:n) {
  y[i] = myfunction(x[1:index[i])
}

По сути, я хотел бы применить myfunction к различным подмножествам вектора x. Не похоже, что apply функции созданы для этого.

1 Ответ

2 голосов
/ 16 марта 2011

Я не уверен, что понимаю, чем вы занимаетесь, но если вы хотите получить из вектора x первое index -это количество элементов, чем составляют некоторые примерные данные:

x <- runif(10)
index <- c(2,5,4,8)

И попробуйте:

> lapply(index, function(index) return(x[1:index]))
[[1]]
[1] 0.3869757 0.4060021

[[2]]
[1] 0.3869757 0.4060021 0.4843015 0.2064443 0.4614179

[[3]]
[1] 0.3869757 0.4060021 0.4843015 0.2064443

[[4]]
[1] 0.3869757 0.4060021 0.4843015 0.2064443 0.4614179 0.9278044 0.7351291
[8] 0.9792204
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...