0

R を使用してテキスト ファイルを読み取り、その後それを操作しています。入力ファイルには 22 列あります。最初の列は次のようになります。

NAME    LENGTH  A   C   D   E   F   G   H   I   K   L   M   N   P   Q   R   S   T   V   W   Y

私は現在使用しています:

read.table("filename", stringsAsFactors=FALSE) 

ファイルを入力します。同じものを実行すると、次の警告が表示されます。

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  line 2 did not have 23 elements

どこが間違っているのかわかりません。私は R を初めて使用するので、助けていただければ幸いです。これが再投稿ではないことを確認しようとしましたが、再投稿である場合は、元のリンクにリンクしてください。

4

1 に答える 1

2

テキスト ファイルが次のようになっているとします。

NAME LENGTH A C D E F G H I K L M N P Q R S T V W Y 
ape:APE_0001 242 15 0 1 12 10 18 2 27 9 43 7 2 8 3 5 25 15 24 3 12 
ape:APE_0002 113 7 1 6 6 1 12 3 4 10 16 4 2 4 0 10 3 5 9 4 5 
ape:APE_0004 305 24 2 5 8 9 25 4 36 12 43 8 11 14 2 12 20 21 27 9 12

「dat.txt」と呼ばれ、作業ディレクトリに保存されます。これはうまくいくはずです:

dat <- read.table("dat.txt", stringsAsFactors=FALSE, header=TRUE)
# to give:
dat
          NAME LENGTH  A C D  E  F  G H  I  K  L M  N  P Q  R  S  T  V W  Y
1 ape:APE_0001    242 15 0 1 12 10 18 2 27  9 43 7  2  8 3  5 25 15 24 3 12
2 ape:APE_0002    113  7 1 6  6  1 12 3  4 10 16 4  2  4 0 10  3  5  9 4  5
3 ape:APE_0004    305 24 2 5  8  9 25 4 36 12 43 8 11 14 2 12 20 21 27 9 12

それが機能していないように見えるため、テキスト ファイルや隠し文字などで何か奇妙で目に見えないことが起こっている可能性があります。

テキスト ファイルがそれほど大きくないと仮定すると、回避策の 1 つは、RStudio で新しい R スクリプトを開き、次のように入力することです。

dat <- read.table(stringsAsFactors=FALSE, header=TRUE, text = "")

""次に、改行や書式設定を変更せずに、上記の行の間のテキスト ファイル内のすべてのテキストをコピー アンド ペーストし、すべてを選択してコンソールに送信します。

コメントの例は次のようになります。

dat <- read.table(header=TRUE, stringsAsFactors=FALSE, text = "NAME LENGTH A C D E F G H I K L M N P Q R S T V W Y 
ape:APE_0001 242 15 0 1 12 10 18 2 27 9 43 7 2 8 3 5 25 15 24 3 12 
ape:APE_0002 113 7 1 6 6 1 12 3 4 10 16 4 2 4 0 10 3 5 9 4 5 
ape:APE_0004 305 24 2 5 8 9 25 4 36 12 43 8 11 14 2 12 20 21 27 9 12")

それが現実的でない、または不可能な場合は、質問にテキスト ファイルへのリンクを投稿してください (例: http://temp-share.com/show/dPf3a6oHWは 45 日後に自動的に削除されます)。

于 2013-04-01T13:03:00.547 に答える