0

おそらく完全な初心者の質問で申し訳ありませんが、今日Rでプログラミングを始めたばかりで、すでに行き詰まっています。

形式のファイルからデータを読み取っています。

3.482373 8.0093238198371388 47.393873
0.32 20.3131 31.313

私がやりたいのは、各行を分割してから、個々の数値をそれぞれ処理することです。

stringr パッケージをインポートして使用しています

x = str_split(line, " ")

これにより、インデックスを作成したいが方法がわからないリストが生成されます。

x[[1:2]] が2番目の要素を取得することを学びましたが、それはそれについてです。理想的には、次のようなものが欲しい

x1 = x[1]
x2 = x[2]
x3 = x[3]

しかし、とにかくこれを行うことを見つけることができません。

前もって感謝します

4

3 に答える 3

2

を使用unlistすると、ベクトルのリストではなくベクトルが取得され、直接インデックスを付けることができます。

R> unlist(str_split("foo bar baz", " "))
[1] "foo" "bar" "baz"

しかし、 read.table またはそのバリアントの 1 つからファイルを直接読み取る必要があるのではないでしょうか?

また、R を初めて使用する場合、サブセット化、インデックス作成などを理解したい場合は、入手可能な入門書の 1 つを読む必要があります。

于 2012-05-31T21:50:32.530 に答える
1

への呼び出しをラップstr_splitunlistて、探している動作を取得できます。

于 2012-05-31T21:46:33.977 に答える
1

これを取得する通常の方法は、データフレーム (特別な種類のリスト) にインポートすることです。ファイル名が「fil.dat」で、「C:/dir/」にある場合

 dfrm <- read.table("C:/dir/fil.dat")  # resist the temptation to use backslashes
 dfrm[2,2]   # would give you the second item on the second row.

デフォルトでは、R のフィールド区切り文字は「空白」であり、それはあなたが持っているように見えるので、sep=引数を指定する必要はなく、read.table 関数は数値としてインポートしようとします。colClasses=rep("numeric", 3)安全のために、奇妙な項目 (Excel ダンプによって生成されることが多い) に遭遇した場合、因子変数を取得し、適切に回復する方法を理解できない可能性があるため、そのオプションを強制することを検討してください。

于 2012-05-31T21:49:24.180 に答える