首先,我创建了一个如下数据框:
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列中的绝对最小值:
如何修改此函数以逐行给出较低的值?
答案 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