我正在尝试编写一个代码,它逐行和迭代地评估我的数据框的 3 列,并生成一个具有在评估中找到的最小值的新列。这是我的数据的样子:
mydata
Jan Feb Mar Apr May Jun Jul Aug
1 .25 .50 .50 .25 .75 .50 .25 .25
2 .75 .25 .75 .50 .25 .50 .50 .50
3 .50 .50 .50 .50 .25 .25 .75 .25
4 .25 .75 .75 .50 .75 .75 .75 .75
这就是我想要制作的:
mydata
Jan Feb Mar Apr May Jun Jul Aug -Mar ... -Aug
1 .25 .50 .50 .25 .75 .50 .25 .25 .25 ... .25
2 .75 .25 .75 .50 .25 .50 .50 .50 .25 ... .50
3 .50 .50 .50 .50 .25 .25 .75 .25 .50 ... .25
4 .25 .75 .75 .50 .75 .75 .75 .75 .25 ... .75
-Mar 显示 (Jan:Mar) 的最小值,-Apr 显示 (Feb:Apr) 的最小值,依此类推。
我尝试了以下方法:
> for (i in 3:8)
{
Newcolname <- as.name(paste("-",i,sep=""))
mydata$Newcolname<- pmin(mydata[,i-2],mydata[,i-1],mydata[,i])
}
但这仅给出了我的 1 个新列,其中包含 (jun:aug) 的最小值,是 mydata 的最后 3 列。我想要的是上面描述的 5 个新列,但我不知道该怎么做。有人吗?
如果我不清楚,请告诉我。提前致谢!