我有一個包含許多.matrix文件的zip文件夾,需要將它們加載到R中進行系列化。 目前我使用的函數read.table每個.matrix文件,但我收到了是在R中加載.matrix文件
1010而不是1 0 1 0
Sample . matrix file :
==> 01-ki-5x7.gt.matrix <==
0101110
1010000
1010011
0101010
1000101
我有一個包含許多.matrix文件的zip文件夾,需要將它們加載到R中進行系列化。 目前我使用的函數read.table每個.matrix文件,但我收到了是在R中加載.matrix文件
1010而不是1 0 1 0
Sample . matrix file :
==> 01-ki-5x7.gt.matrix <==
0101110
1010000
1010011
0101010
1000101
假設你已經在使用readLines
或scan
讀取數據並結束了類似:
x <- c("0101110", "1010000", "1010011", "0101010", "1000101")
您可以使用類似的東西轉換成
您可能還可以得到多一點的速度出來的東西,如:
t(vapply(strsplit(x, "", TRUE), as.numeric, numeric(nchar(x[1]))))
或者,你可以嘗試從「readr」包read_fwf
(可以使用read.fwf
也是如此,但我總是發現它很慢)。該方法可能是這樣的:
library(readr)
read_fwf("yourfile", fwf_widths(rep(1, nchar(readLines("yourfile", n = 1)))))
# Source: local data frame [5 x 7]
#
# X1 X2 X3 X4 X5 X6 X7
# 1 0 1 0 1 1 1 0
# 2 1 0 1 0 0 0 0
# 3 1 0 1 0 0 1 1
# 4 0 1 0 1 0 1 0
# 5 1 0 0 0 1 0 1
library(readr)
read_fwf("yourfile", fwf_widths(rep(1, nchar(readLines("yourfile", n = 1)))))
# Source: local data frame [5 x 7]
#
# X1 X2 X3 X4 X5 X6 X7
# 1 0 1 0 1 1 1 0
# 2 1 0 1 0 0 0 0
# 3 1 0 1 0 0 1 1
# 4 0 1 0 1 0 1 0
# 5 1 0 0 0 1 0 1
我仍然收到一個錯誤'錯誤在vapply(strsplit(m2,「」,TRUE)as.numeric ,數值(nchar(x [1]))): 值必須是長度3, 但FUN(X [[1]])的結果是長度爲6' –
@CK,嘗試'numeric(nchar(m2 [1] ))'而不是。 – A5C1D2H2I1M1N2O1R2T1
我得到一個錯誤的輸出'[1] 0 0 0 0 0 0' –
沒有看到幾行文件,很難提供任何援助....你可以發佈'readLines(「yourfile」,n = 5) '或者類似的東西,以便我們瞭解您正在使用的是什麼? – A5C1D2H2I1M1N2O1R2T1
==> 0,1,-ki-5x7.gt.matrix <== 0,1,0,1,1,1,0 1,0,1,0,0,0,0 1, 0,1,0,0,1,1 0,1,0,1,0,1,0 1,0,0,0,1,0,1 –
請使用您的問題下的「編輯」鏈接並使用正確的格式設置文本。很難看到我們正在處理的評論。 – A5C1D2H2I1M1N2O1R2T1