文字列があり、別のオブジェクトと同じ型に変換したい。このオブジェクトはベクトルと見なすことができます。たとえば、文字列"50"
とターゲットベクトル1:10
がある場合、"50"
を整数50
に変換します。私は変換を行う一般的な方法があるのだろうかと思います。どのタイプを変換したいのか分かっていれば簡単です。私は数字にしたい場合はas.numeric()
を使うことができます。文字列を別のオブジェクトと同じ型に変換する
この質問の背景は:ユーザーがテーブルの値を編集できるようにグラフィカルユーザーインターフェイスを提供したいと思います。彼らはセルを編集した後、文字列を取得し、元のデータ(通常は行列またはデータフレーム)を認識します。元のデータをこの新しい値で更新したいと思います。 value
は文字列なので、私は単にdata[i, j] <- value
を実行することはできません。
私はいくつかの一般的なタイプ(数値、文字、因子、日付など)を列挙し、as.*()
を使用して変換を行うことができますが、既存のジェネリックアプローチ。日付(タイムゾーン、起点)と要因(新しいレベルを追加する可能性があります)については、少し難しいことがあります。
これはおそらく、いくつかのケースでは失敗しますが、多分、 'モード(OBJ1)< - モード(obj2が) 'または' class(obj1)< - class(obj2) 'です。ここで、obj1はユーザー入力で、obj2は変更するオブジェクトです。 – lmo
'モード< - 'も私の頭に最初に来たものですが、それは要因や日付のために動作しません。 –
'class < - 'は日付で動作します(少なくとも 'class(obj1)< - class(as.Date(" 2001-10-10 "))')が動作します。変更されるオブジェクトのタイプに応じて、 'mode < - 'と 'class < - 'の間で何らかの分岐が発生する可能性がありますか? – lmo