Pertanyaan Mengonversi satuan dalam R


Saya ingin mengkonversi dari unit imperial ke metrik dan sebaliknya di R. Bagaimana cara melakukannya?

Jika tidak ada cara saat ini melakukan itu, bagaimana saya bisa membuat paket yang akan?


32
2017-08-27 13:14


asal


Jawaban:


Saya tahu ini sangat terlambat, tetapi paketnya measurements memiliki fungsi conv_unit() itu mungkin yang Anda cari. Anda memasukkan nilai imperial yang Anda miliki, unit apa yang Anda konversi dari (misalnya 'ft') dan apa yang ingin Anda konversikan ke (mis. 'Km'). Ini memiliki berbagai dimensi yang berbeda (tidak hanya panjang).


9
2017-08-29 14:17



Sifat unit dapat mempengaruhi ada atau tidaknya. Secara umum saya pikir, sayangnya, bahwa @ gsk3 benar. Ada beberapa fungsi dalam paket 'Hmisc', 'gdata', dan 'marelac':

Menetapkan atribut unit (untuk lebih dari sekadar objek waktu): http://finzi.psych.upenn.edu/R/library/Hmisc/html/units.html

Medis: http://finzi.psych.upenn.edu/R/library/gdata/html/ConvertMedUnits.html

'marelac' Index (sebagian besar khusus untuk oseanografi) http://finzi.psych.upenn.edu/R/library/marelac/html/00Index.html

Suhu: http://finzi.psych.upenn.edu/R/library/marelac/html/convert_T.html

Barometrik: http://finzi.psych.upenn.edu/R/library/marelac/html/convert_p.html

Paket "dielektrik" disebut oleh @Brian Diggs sebagai jawaban atas pertanyaan serupa: Tautan ke halaman bantuan 'konstanta' dalam paket 'dielectric'

Saya pikir itu akan memberikan contoh untuk melakukannya dan fungsinya package.skeleton harus membantu dengan mekanisme pembuatan paket. Saya pikir paket itu akan menjadi tambahan yang baik.

Pembaruan: Paket 'udunits2' disebutkan oleh Gabor Grothendieck dalam pertanyaan serupa untuk rhelp 23 Juli 2012. Tampaknya memerlukan instalasi paket khusus OS yang berdiri sendiri dengan nama yang sama. Tanpa instalasi seperti itu, Anda mendapatkan pesan kesalahan yang agak tidak membantu:

> ud.convert(1, "miles", "km")  
Error in ud.convert(x, "miles", "km") : 
  Units miles and km are not convertible

24
2017-08-27 15:18



Ada itu unit() dan convertUnit() fungsi dalam jaringan paket untuk menentukan satuan panjang dan dimensi yang berbeda. Itu dapat melakukan apa yang Anda inginkan, atau memberi Anda tempat untuk memulai jika tidak.


7
2017-08-27 16:22



Itu udunits2 paket tidak hanya itu. Ini membungkus yang kuat Pustaka UDUNITS:

udunits2::ud.convert(1, "mi", "km")
## [1] 1.609344

Di atas itu, itu units paket (bekerja dalam proses) bertujuan untuk menyediakan sistem tipe-aman untuk melakukan aritmatika dengan unit:

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

3
2017-09-13 12:54



Ada paket R "baru" yang disebut unit hari ini, yang dibangun di atas udunits2 Paket R, yang tersedia beberapa waktu lalu.

Silahkan melihat ke: 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

3
2018-02-10 14:08