私は非常に簡単なことをしようとしていて、時間のあることをしています。私はタブ区切りのファイルに格納されている一連のデータを持っています。このタブ区切りファイルには、欠損値があります。タブ区切りの値を持つ列を呼び出そうとすると、間違った列が呼び出されます。私はこれが第三列(私が抽出しようとしているもの)のヘッダー行の後の最初の値が行方不明の列であると考えています。ここに私のデータの一例である(私の実際のデータは36000行ですが、すべて同じ書式設定):R:列を呼び出すときにタブ区切りファイルの欠損値を検出するread.tableの問題
x y z
230.125 49.875 0
230.375 49.875 0
230.625 49.875 0
261.125 49.875 0
261.375 49.875 0
251.625 48.875 4.38619211912155
251.875 48.875 3.70883572995663
252.125 48.875 3.2566264629364
252.375 48.875 3.00820730924606
254.125 48.875 7.88962166309357
254.375 48.875 8.50787222385406
254.625 48.875 8.95758244991303
254.875 48.875 9.47213044166565
255.125 48.875 9.96883320808411
255.375 48.875 10.4400730609894
255.625 48.875 10.6357674837112
255.875 48.875 9.81607600450516
274.125 48.875 0
274.375 48.875 0
274.625 48.875 0
274.875 48.875 0
275.125 48.875 0
275.375 48.875 0
275.625 48.875 0
275.875 48.875 0
276.125 48.875 0
私は3番目の列を抽出し、以降で計算を行うには、別の行列にそれを追加しようとしています(これは、同じタイプの多くのファイルに対して実行されます)。だから私はここで初期化された2番目の行列を持っています。ここで
は私のコードです:
library(data.table)
temp <- c()
matrix_prelim <- matrix(nrow = 36000)
temp <- as.matrix(read.table("/myfilepath/example.txt", sep="\t", fill = TRUE. na.strings = "", header=TRUE)
matrix_prelim <- cbind(matrix_prelim, temp[[3]])
次に印刷:
head(matrix_prelim)
利回り:
[,1] [,2]
[1,] NA 230.625
[2,] NA 230.625
[3,] NA 230.625
[4,] NA 230.625
[5,] NA 230.625
[6,] NA 230.625
私が希望することはありません内容の行列を初期化することを知っている(とき私には何の問題もありません):
[,1] [,2]
[1,] NA 0
[2,] NA 0
[3,] NA 0
[4,] NA 0
[5,] NA 0
[6,] NA 4.38619211912155
私は何が間違っているのか全く分かりません。どんな助けでも大歓迎です。
ありがとうございました!
EDIT:na.strings引数を ""に変更しようとしましたが、na.strings引数を完全に取り出し、freadを使用して3番目の列を取得しようとしました。 )、ヘッダーを設定しようとしました= FALSE。
チップをありがとう!残念ながら、上記のコードを使用すると動作しませんでした。実際には(matrix_prelimの頭部を印刷した後に)[1] 230.625しか返しませんでした。私はsubstrとカバリングを使って値を数値に分離しようとしています。 – SEHOCKETT
実際には、データを読み込むときに 'as.matrix'を使わずにコードを試してみてください。 –
解決済み!ありがとうございました! – SEHOCKETT