0

次のデータフレームがあります

CollegeData<-structure(list(PUBID = c(1, 2, 3, 4, 6, 8, 9, 10, 11, 12), CVC_BA_DEGREE = structure(c(2003.41666666667, 
NA, NA, NA, NA, 2003.5, 2005.41666666667, 2004.41666666667, NA, 
NA), class = "yearmon"), FirstYear4C = c(1999, 2000, 2001, 2005, 
2000, 1999, 2000, 2002, 2001, 2002)), .Names = c("PUBID", "CVC_BA_DEGREE", 
"FirstYear4C"), row.names = c(NA, 10L), class = "data.frame")

新しい列を作成したいのですが、

CollegeData$TTD=CollegeData$CVC_BA_DEGREE-CollegeData$FirstYear4C

ここで、最初の要素は 2003 年 6 月~1999 年 = 4 年、2 番目の要素は NA - 2000=NA です。

ありがとう!

4

2 に答える 2

2

yearmon として CVC_BA_DEGREE を持っていますが、数値として FirstYear4C を持っているので、それらを差し引く前にそれらを比較する必要があります。

CollegeData$TTD=CollegeData$CVC_BA_DEGREE-CollegeData$FirstYear4C
# won't make sense ... unless you use it without zoo package where yearmon is defined

CollegeData$TTD=as.numeric(CollegeData$CVC_BA_DEGREE)-CollegeData$FirstYear4C
CollegeData$TTD=CollegeData$CVC_BA_DEGREE-as.yearmon(CollegeData$FirstYear4C)
# both lead to the same result 

「より短い」結果、つまり 4.41667 の代わりに 4 が必要な場合はtrunc、 またはroundまたはを使用しますfloor

編集: package の関数を使用していることを忘れていましたzoo。Zoo がない場合、yearmon オブジェクトは通常の数値のように動作し、floor や trunc などの関数を使用できます。

于 2013-09-19T19:53:01.937 に答える
1

この質問を解釈すると、その年の整数が必要ですか? 私はこれを次のように完成させます:

CollegeData$TTD=floor(CollegeData$CVC_BA_DEGREE)-CollegeData$FirstYear4C

于 2013-09-19T19:48:44.983 に答える