데이터 프레임을 함수로 보내고, 목표는 S.COLOR이라는 빨간색/녹색 결과를 포함하는 다른 열을 추가하는 것입니다. 이것은 해가 수익성이 있는지 아닌지를 확인함으로써 이루어집니다 (수익성이란 Adj.의 12 월 31 일 종가 마감이 Adj.Close가 같은 해 1 월 1 일에 더 많음을 의미).함수에 데이터 프레임 보내기; 최소/최대 오류 결과
제 (헤드) 데이터 프레임은 다음과 같습니다
Date Adj.Close YEAR
1 2014-01-24 30.45 2014
2 2014-01-23 31.48 2014
3 2014-01-22 32.29 2014
4 2014-01-21 32.63 2014
5 2014-01-17 33.40 2014
6 2014-01-16 32.00 2014
. . .
내 기능은 다음과 같습니다stock.color<-function(df)
{
my.year<-df$YEAR
#print(my.year) <--- this is OK it's a vector
dfsub<-subset(df,YEAR==my.year)
#print(dfsub) <--- this is OK it's a vector
minDate<-min(dfsub$Date) #<---problem here everything is the same date 1993-01-01
maxDate<-max(dfsub$Date)
print(minDate)
s<-subset(dfsub, Date==minDate)
e<-subset(dfsub, Date==maxDate)
amount.s<-s[,c("Adj.Close")]
amount.e<-e[,c("Adj.Close")]
if (amount.e>amount.s)
return ('GREEN')
return ('RED')
}
전송 기능 예 :
stock.data<-transform(stock.data, S.COLOR=stock.color(stock.data))
나는 최소/최대 기능은 같은 이산 결과를 반환하고 1993 점이다이 문제 -01-01 및 1993-31-12로 변경되어 새로운 열의 최종 결과가 올바르지 않습니다.
질문 : 왜 MIN/MAX에서 동일한 결과가 발생하며 어떻게 해결할 수 있습니까?