2012-07-03 3 views
-3

Можно создать дубликат:
Compute the minimum of a pair of vectorsМинимум 2 векторов в R

У меня есть два вектора одинаковой длины:

a <- rnorm(40) 
b <- rnorm(40) 

Теперь я хочу, чтобы создать третий вектор c, который имеет каждую точку младшего значения a и b. Это может быть решение:

for (i in 1:40) 
{c[i] <- min(a[i],b[i])} 

Однако, я думаю, есть более простой способ сделать это.

+4

Related (и находится на первой странице результатов поиска для «мин векторов»): [? Vectorialized параллельно макс() и мин()] (HTTP: // stackupflow.com/q/5591593/271616), [Вычислить минимум пары векторов] (http://stackoverflow.com/q/7770535/271616), [max и min функции, похожие на colMeans] (http://stackoverflow.com/q/7824912/271616) –

ответ

8

Это именно то, что pmin предназначено для ..., что задокументировано в ?min.

a <- rnorm(40) 
b <- rnorm(40) 
minab <- pmin(a,b) 
4

Ответ Joshua, без сомнения, является лучшим решением для вашего вопроса. Тем не менее, я иногда лично люблю использовать простые инструменты и создавать свой собственный код или функцию. Вот еще один способ решения проблемы:

apply(data.frame(v1 = rnorm(40), v2 = rnorm(40)),1,min) 
Смежные вопросы