Определите, какой элемент обрабатывается при использовании * применения функций - PullRequest
2 голосов
/ 23 марта 2012

Предположительно, R знает, какой элемент списка, или элемент вектора, или строку матрицы и т. Д. Он обрабатывает во время выполнения функции * apply. Можно ли использовать этот индекс в функции, не прибегая к какому-то обходному пути, подобному этому:

fruit <- c("Bananas", "Oranges", "Avocados", "Celeries?")
sapply(fruit, function(x) 
   paste(x, "are fruit number", which(fruit==x)))

или другие обходные пути, такие как эти , опубликованные в связи с аналогичным вопросом?

Надеюсь [бесплодно?] На что-то более элегантное.

Ответы [ 3 ]

4 голосов
/ 23 марта 2012

Я бы лучше написал

sapply(seq_along(fruit), function(ii) paste(fruit[ii], "are fruit number", ii))
3 голосов
/ 23 марта 2012

Вы можете передать индекс вместо вектора в sapply;

fruit <- c("Bananas", "Oranges", "Avocados", "Celeries?")
sapply(seq_along(fruit), function(x) paste(fruit[x], "are fruit number", x))
2 голосов
/ 23 марта 2012

Возможно, mapply - полезная альтернатива?(правда, здесь не нужно)

fruit <- c("Bananas", "Oranges", "Avocados", "Celeries?")
mapply(paste, fruit, "are fruit number", seq_along(fruit))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...