2017-11-17 6 views
0

異なる単位で入力された高さをセンチメートルに変換する関数をRで記述しようとしています。変換単位(フィートからcm)が整数の要素として入力されましたR

データフレームでは、高さはセンチメートル(たとえば175)、メートル(たとえば1.83)、またはフィートとインチ(たとえば5ft4または5ft9.5)で入力されます。 私がする必要があるのは、文字( "ft"または "。")を含む要素を整数に変換することですが、私はこれを実際にどのようにアプローチするかについては考えていません。

すべてのヘルプは大歓迎:)これはうまくいくかもしれない

+1

あなたはこれまで何をしていますか?問題はどこですか? –

+0

'gsub( 'ft | [。]'、 ''、c( '5ft4'、 '5ft9.5'))' – agstudy

+0

私はRの非常に基本的なレベルにあり、データフレームの要素を整数に変換する 私はfor-ifループを作成し、ftを含む要素を返すgrepl関数を使用しようとしていましたが、整数ではないので変換ファクタを使用できる状態に変換する方法はわかりません。 – oiboi

答えて

0

以上になります。

library(dplyr) 
    library(stringr) 

    df <- tibble(measurementType = c("feet", "cm", "m"), height = c("5ft8.5", 175, 1.83)) 

    df %>% mutate(height = ifelse(measurementType == "feet", 
           as.numeric(unlist(str_split(height, "ft"))[1]) * 12 + as.numeric(unlist(str_split(height, "ft"))[2]), 
           as.numeric(height))) %>% 
     mutate(heightInCm = case_when(measurementType == "feet" ~ height * 2.54, 
            measurementType == "m" ~ height * 100, 
            TRUE ~ height)) 
関連する問題