私はこのようなデータフレームを持っています:
Analyte Value
Fe 60.3203
Sio2 2.3003
As 0.5564
値の列を、その値に応じて小数点以下の桁数を四捨五入したいと思います。つまり、値が1より大きい場合は、小数点以下2桁を表示し、1未満の場合は、小数点以下3桁に丸めます。これをRデータフレームに適用することはできますか?
私が試してみました:
df$value <- if_else(df$value >1.0, round(df$value, digits =3), round(df$value, digits =2))
そして
df$value <- if_else(df$value >1.0, format(round(df$value, nsmall =3)), format(round(df$value, nsmall =2)))
上記の2つのオプションのいくつかのバリエーションも試しましたが、列全体が同じ小数点以下の桁数に丸められることになります。
このタイプは、テーブルを表示するときに、ある種のグラフィックタイプの機能に適していると思いますか?
sprintf
これが表示目的の場合は、小数点以下の桁数を制御するために使用できます。
with(df, ifelse(Value > 1, sprintf("%.3f",Value), sprintf("%.2f",Value)))
#[1] "60.320" "2.300" "0.56"
あなたは近くにいformat
てround
、あなたはすることができます:
with(df, trimws(ifelse(Value > 1, format(round(Value, 3), nsmall = 3),
format(round(Value, 2), nsmall = 2))))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加