the*_*413 2 import r read.table
我的名为 myfile.txt 的文件设置如下:
Column1
Column2
Column3
...
Column10
Row1
1
2
3
4
Row2
5
6
7
8
...
Run Code Online (Sandbox Code Playgroud)
行数最终达到 100,我在使用 read.table 命令时遇到了问题。我不是一个有经验的 R 用户,所以我只需要弄清楚并完成它。
我认为 col.names 看起来像:
read.table("myfile.txt", col.names = 1:10)
Run Code Online (Sandbox Code Playgroud)
但这没有用
一个例子myfile.txt:
Column1
Column2
Column3
Column4
Row1
1
2
3
4
Row2
5
6
7
8
Run Code Online (Sandbox Code Playgroud)
读取文件并创建一个矩阵:
lin <- scan("myfile.txt", "") # read lines
lin2 <- grep("Column|Row", lin, value = TRUE, invert = TRUE) # values
matrix(as.numeric(lin2), ncol = sum(grepl("Column", lin)), byrow = TRUE)
# create matrix
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
Run Code Online (Sandbox Code Playgroud)
如果第一行未命名Column...但包含实际的列名称,您可以使用以下方法:
lin <- scan("myfile.txt", "") # read lines
idx <- grep("^Row", lin) # index of lines containing 'Row'
lin2 <- lin[-(c(seq(1, idx[1] - 1), idx))] # actual values
matrix(as.numeric(lin2), nrow = length(idx),
dimnames = list(NULL, lin[seq(1, idx[1] - 1)]), byrow = TRUE)
Column1 Column2 Column3 Column4
[1,] 1 2 3 4
[2,] 5 6 7 8
Run Code Online (Sandbox Code Playgroud)