1

だから私は月と呼ばれるRのデータフレームにベクトルを持っています. 私のデータ フレームは wr200meter と呼ばれます。の出力は次のwr200meter$Monthとおりです。

[1] May    June   June   Nov    Oct    March  April 

[8] May    July   July   Sept   June   March  April 

[15] June   Oct    August June   Oct    Sept   June  

[22] August August August

私がas.numeric(wr200meter$Month)得るとき:

[1] 6 4 4 7 8 5 1 6 3 3 9 4 5 1 4 8 2 4 8 9 4 2 2 2

私が取得したいのは10進数です。たとえば、6 月には 0.5、9 月には 0.75 が必要です。誰か教えてください:1)希望の10進数を取得する方法2)出力された数値はどこからas.numeric(wr200meter$Month)来たのですか?

ありがとう!

4

2 に答える 2

5
 monfac <- factor(substr(mons,1,3), levels=month.abb)
 as.numeric(monfac)/12
 [1] 0.4166667 0.5000000 0.5000000 0.9166667 0.8333333 0.2500000 0.3333333
 [8] 0.4166667 0.5833333 0.5833333 0.7500000 0.5000000 0.2500000 0.3333333
[15] 0.5000000 0.8333333 0.6666667 0.5000000 0.8333333 0.7500000 0.5000000
[22] 0.6666667 0.6666667 0.6666667

month.abbとはどちらもmonth.nameR の組み込みベクトルです。ベクトルには略語と完全なスペルが混在しており、私が行ったようにトリミングするかgrep、@musically_ut のように -ing する必要があります。彼grepはこれらのベクトルの 1 つで位置を見つけていました。私はそのレベルを暦月の自然な順序で並べたベクトルを作成し、それを数値に変換しました。

「yearmon」クラスを持つ非常に便利な「zoo」パッケージもあります。これは、小数月が数値として格納される年であり、算術またはソートを行うことができます。この問題は、現在の年を減算することで利用できます。

于 2013-09-29T19:10:25.307 に答える