0

数日間、さまざまなソリューション (stackoverflow と R ヘルプ スレッドで議論されているものを含む) を試しました。どれも良い解決策を生み出していません。したがって、この投稿。

データフレームを作成する必要があります

df <- as.data.frame (matrix (nrow = 3470, ncol = 22,000)

最初の 3 列は文字/文字列データです。残りは数値データです。混合モードは、このアプローチを台無しにしました。

df <- data.frame (c1 = char(22,000), c2 = char(22,000), c3 = char(22,000), .....)

このソリューションで列 4 から 22,000 を数値として設定する方法はありますか? (その後、colnames (df) を使用して実際の名前を設定できます)。

のようなものでデータフレームを初期化しながら

 df <- data.frame (c1 = char(22,000), c2 = char(22,000), c3 = char(22,000), .....)

c4 から c22,000 が数値であることを宣言するために rep のようなものを使用するメカニズムはありますか?

どうもありがとうございました。(データフレームの初期化については何度か議論されていることを知っています。いくつかのアプローチを試しましたが、まだ良い解決策を見つけていません)。したがって、この投稿は、打ちのめされたトピックへの投稿です。

4

1 に答える 1

2

その構文をどこから入手したのかわかりません。まず、カンマを千単位の区切り記号として使用しないでください。人間にとっては問題ありませんが、コンピュータにとってはそうではありません。次に、文字ベクトルを作成する関数は でありcharacter(n)、 ではありませんchar(n)。第 3 に、 への引数data.frameは行ではなく、データ フレームに必要なであるため、おそらく 22000 ではなく 3470 が必要です。最後に、数値ベクトルの同等の関数は ですnumeric(n)

df <- data.frame(
    c1 = character(3470),
    c2 = character(3470),
    c3 = character(3470),
    n1 = numeric(3470),
    ...)

実際に 22000 列ある場合は、複数の列に変換される行列を渡すことでそれを行うことができます。

df <- data.frame(
    c1 = character(3470),
    c2 = character(3470),
    c3 = character(3470),
    n = matrix(0, nrow=3470, ncol=21997))
于 2013-07-10T10:24:11.393 に答える