Rでインペリアル単位からメートル法に、またはその逆に変換したいのですが、どうすればよいですか?
それを行う現在の方法がない場合、どうすればそうなるパッケージを作成できますか?
これは非常に遅いことは知っていますが、パッケージmeasurements
には関数conv_unit()
があります。これはあなたが探しているものかもしれません。持っているインペリアル値、変換元の単位(例:「ft」)、変換先の単位(例:「km」)を入力します。それは(長さだけでなく)さまざまな異なる寸法を持っています。
ユニットの性質は、存在または不在に影響を与える可能性があります。一般的に、残念ながら、@ gsk3は正しいと思います。 'Hmisc'、 'gdata'、および 'marelac'パッケージにはいくつかの関数があります。
単位属性の設定(時間オブジェクト以外の場合): http://finzi.psych.upenn.edu/R/library/Hmisc/html/units.html
医療: http://finzi.psych.upenn.edu/R/library/gdata/html/ConvertMedUnits.html
'marelac'インデックス(主に海洋学に特化) http://finzi.psych.upenn.edu/R/library/marelac/html/00Index.html
温度: http://finzi.psych.upenn.edu/R/library/marelac/html/convert_T.html
バロメトリック: http://finzi.psych.upenn.edu/R/library/marelac/html/convert_p.html
パッケージ「dielectric」は、同様の質問への回答で@Brian Diggsによって言及されました: パッケージ「dielectric」の「constants」ヘルプページへのリンク
それらはそうする例を提供すると思います、そして関数package.skeleton
はパッケージ作成の仕組みに役立つはずです。パッケージは歓迎すべき追加だと思います。
更新:「udunits2」パッケージは、2012年7月23日のrhelpと同様の質問で、GaborGrothendieckによって言及されました。同じ名前のスタンドアロンOS固有のパッケージをインストールする必要があるようです。このようなインストールがないと、役に立たないエラーメッセージが表示されます。
> ud.convert(1, "miles", "km")
Error in ud.convert(x, "miles", "km") :
Units miles and km are not convertible
gridパッケージには、さまざまな長さと寸法の単位を指定するためのunit()
関数とconvertUnit()
関数があります。それはあなたが望むことをするかもしれません、あるいはそうでなければあなたに始める場所を与えるかもしれません。
今日、unitsと呼ばれる「新しい」Rパッケージがあります。これはudunits2少し前に入手可能だったRパッケージ。
ご覧ください: https://cran.r-project.org/web/packages/units/vignettes/units.html#setting-units-unit-conversion
library(units)
(spd1 = 1:5 * with(ud_units, m/s))
##Units: m/s
##[1] 1 2 3 4 5
(spd2 = 1:5 * with(ud_units, km/h))
#Units: km/h
#[1] 1 2 3 4 5
spd1 + spd2 # automatic conversion
#Units: m/s
#[1] 1.277778 2.555556 3.833333 5.111111 6.388889
spd1 * spd2 # unit derivation
#Units: km*m/h/s
#[1] 1 4 9 16 25
spd1 * 10 * with(ud_units, s) # unit simplification
#Units: m
#[1] 10 20 30 40 50
spd1 + 10 * with(ud_units, s) # error checking
#Error in `units<-.units`(`*tmp*`, value = list(numerator = "m", denominator = "s")) :
cannot convert s into m/s
udunits2
パッケージはまさにそれを行います。強力な DUNITSライブラリ をラップします:
udunits2::ud.convert(1, "mi", "km")
## [1] 1.609344
その上、 units
パッケージ(進行中の作業)は、単位を使用して算術演算を行うためのタイプセーフなシステムを提供することを目的としています。
with(ud_units, 1 * mi + 2 * km)
## 2.242742 mi
with(ud_units, 100 * km / (2 * h))
## 50 km/h
with(ud_units, 1 * mi + 2 * lb)
## Error: cannot convert lb into mi