找到成对(并行)最小值

时间:2011-11-12 01:50:25

标签: r

首先,我创建了一个如下数据框:

age=18:29
height=c(76.1,77,78.1,78.2,78.8,79.7,79.9,81.1,81.2,81.8,82.8,83.5)
height1=c(71.1,75,77.1,73.2,77.8,73.7,78.9,87.1,86.2,85.8,82.8,83.5)
village=data.frame(age=age,height=height,height1=height1)

现在,我想在数据框中创建第四列,该列采用每行较短人物的高度,例如第1行76.1对71.1应该返回71.1,依此类推。

我尝试使用此代码执行此操作:

village=transform(village, shorter=min(height,height1))

我得到了一个奇怪的结果。它给出了BOTH列中的绝对最小值:

It gives me the absolute smallest height in BOTH columns

如何修改此函数以逐行给出较低的值?

1 个答案:

答案 0 :(得分:12)

min函数查看整个向量。你想要的是pmin

> village$ageminht <- with(village, pmin(height, height1) )
> village$ageminht
 [1] 71.1 75.0 77.1 73.2 77.8 73.7 78.9 81.1 81.2 81.8 82.8 83.5