Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中读取制表符分隔的文件?_R_File_Matrix - Fatal编程技术网

如何在R中读取制表符分隔的文件?

如何在R中读取制表符分隔的文件?,r,file,matrix,R,File,Matrix,我正在阅读一个选项卡分隔的文件,它是使用以下代码生成的矩阵 infile <- file("line.txt", "r") readLines(infile) -> matrix 与: 其中“line.txt”是您为制表符分隔的文本文件指定的名称 使用fill=TRUE允许不完整的行,从?读取。表: 填充逻辑。如果为TRUE,则在行长度不相等的情况下, 将隐式添加空白字段 na.字符串要解释的字符串的字符向量 作为NA值。空白字段也被认为是中缺少的值 逻辑、整数、数字和复杂字段

我正在阅读一个选项卡分隔的文件,它是使用以下代码生成的矩阵

infile <- file("line.txt", "r")  
readLines(infile) -> matrix
与:

其中“line.txt”是您为制表符分隔的文本文件指定的名称

使用
fill=TRUE
允许不完整的行,从
?读取。表

填充逻辑。如果为TRUE,则在行长度不相等的情况下, 将隐式添加空白字段

na.字符串要解释的字符串的字符向量 作为NA值。空白字段也被认为是中缺少的值 逻辑、整数、数字和复杂字段

要使用示例输入,我只需执行以下操作,而不是使用
file=“line.txt”

x <- 
read.table(text='
position    SNP rs11828013  rs7931369   rs567411332 rs184532784 rs7931583   rs555937772 rs9651750   rs9651751   rs9651752   rs73530502
71278426    rs11828013  rs11828013
71278461    rs7931369   -   rs7931369
71278482    rs567411332 -   -   rs567411332
71278519    rs184532784 -   -   -   rs184532784
71278580    rs7931583   -   1.000   -   -   rs7931583
71278733    rs555937772 -   -   -   -   -   rs555937772
71278792    rs9651750   -   1.000   -   -   1.000   -   rs9651750
71278828    rs9651751   -   1.000   -   -   1.000   -   1.000   rs9651751
71278915    rs9651752   -   1.000   -   -   1.000   -   1.000   1.000   rs9651752
71279052    rs73530502  -   0.116   -   -   0.116   -   0.116   0.116   0.116   rs73530502
',na.strings='-', header=TRUE, stringsAsFactors = FALSE, fill=TRUE)
与:

其中“line.txt”是您为制表符分隔的文本文件指定的名称

使用
fill=TRUE
允许不完整的行,从
?读取。表

填充逻辑。如果为TRUE,则在行长度不相等的情况下, 将隐式添加空白字段

na.字符串要解释的字符串的字符向量 作为NA值。空白字段也被认为是中缺少的值 逻辑、整数、数字和复杂字段

要使用示例输入,我只需执行以下操作,而不是使用
file=“line.txt”

x <- 
read.table(text='
position    SNP rs11828013  rs7931369   rs567411332 rs184532784 rs7931583   rs555937772 rs9651750   rs9651751   rs9651752   rs73530502
71278426    rs11828013  rs11828013
71278461    rs7931369   -   rs7931369
71278482    rs567411332 -   -   rs567411332
71278519    rs184532784 -   -   -   rs184532784
71278580    rs7931583   -   1.000   -   -   rs7931583
71278733    rs555937772 -   -   -   -   -   rs555937772
71278792    rs9651750   -   1.000   -   -   1.000   -   rs9651750
71278828    rs9651751   -   1.000   -   -   1.000   -   1.000   rs9651751
71278915    rs9651752   -   1.000   -   -   1.000   -   1.000   1.000   rs9651752
71279052    rs73530502  -   0.116   -   -   0.116   -   0.116   0.116   0.116   rs73530502
',na.strings='-', header=TRUE, stringsAsFactors = FALSE, fill=TRUE)
将sep=“\t”添加到read.table()

data将sep=“\t”添加到read.table()中



数据是否使用read.delim?如果看不到原始数据的样子,就很难进行调试。我不知道,如果不知道您希望如何处理行与行之间的列数差异,任何人都可以提供合理的答案。此外,如果您确实希望,您可以编写循环的一些变体,使用
read.table
skip
nrows
参数一次读取一行,并将每个结果存储在列表元素中。但同样,你们要做什么呢?我已经编辑并添加了输入表。我只想阅读它并将其处理成matrixBut——正如本杰明所说——你的矩阵应该是什么样的?“-”列是吗?使用read.delim?如果看不到原始数据的样子,就很难进行调试。我不知道,如果不知道您希望如何处理行与行之间的列数差异,任何人都可以提供合理的答案。此外,如果您确实希望,您可以编写循环的一些变体,使用
read.table
skip
nrows
参数一次读取一行,并将每个结果存储在列表元素中。但同样,你们要做什么呢?我已经编辑并添加了输入表。我只想阅读它并将其处理成matrixBut——正如本杰明所说——你的矩阵应该是什么样的?是'-'列吗?哇。很明显,我没有充分阅读文档。我从未注意到
fill
@logicstar您想要的输出是什么?请编辑您的问题@C8H10N4O2我的意思是,就像你已经展示了file=“position SNP…”但当我读到sameusing文件时,我没有;我得不到任何输出。代码:read.table(“sample”,na.strings=“-”,header=TRUE,stringsAsFactors=FALSE,fill=TRUE)read.table(“sample”,na.strings=“-”中存在错误,header=TRUE,stringsAsFactors=FALSE,:比列名多的列文件:您能给我显示相同的结果吗。@C8H10N4O2我编辑了我的问题。它是同一个文件,但这次是文件格式,而不是文本。,@logicstar我已经尽力回答了一个非常不清楚的问题。我怀疑您的文本文件名是否为“示例”。可能是“sample.txt”或其他什么。在你的问题中,文件名为“line.txt”,所以我使用了该文件名。哇。我显然没有足够的阅读文档。我从来没有注意到
fill
@logicstar你想要的输出是什么?请编辑你的问题!@C8H10N4O2我的意思是,就像你显示的file=“position SNP…”但是当我读取sameusing文件时,我没有得到任何输出。代码:read.table(“sample”,na.strings=“-”,header=TRUE,stringsAsFactors=FALSE,fill=TRUE)read.table(“sample”,na.strings=“-”中的错误,header=TRUE,stringsAsFactors=FALSE,:比列名多的列文件:您能给我显示相同的结果吗。@C8H10N4O2我编辑了我的问题。它是同一个文件,但这次是文件格式,而不是文本。,@logicstar我已经尽力回答了一个非常不清楚的问题。我怀疑您的文本文件名是否为“示例”。它可能是“sample.txt”或其他内容。在您的问题中,该文件名为“line.txt”,因此我使用了该文件名。在这种情况下不需要该文件名。检查
?read.table
如果sep=“”(read.table的默认值)分隔符为“空白”,即一个或多个空格、制表符、换行符或回车符。
在这种情况下不需要分隔符。选中
?read.table
如果sep=“”(read.table的默认值)分隔符为“空白”,即一个或多个空格、制表符、换行符或回车符。
x <- 
read.table(text='
position    SNP rs11828013  rs7931369   rs567411332 rs184532784 rs7931583   rs555937772 rs9651750   rs9651751   rs9651752   rs73530502
71278426    rs11828013  rs11828013
71278461    rs7931369   -   rs7931369
71278482    rs567411332 -   -   rs567411332
71278519    rs184532784 -   -   -   rs184532784
71278580    rs7931583   -   1.000   -   -   rs7931583
71278733    rs555937772 -   -   -   -   -   rs555937772
71278792    rs9651750   -   1.000   -   -   1.000   -   rs9651750
71278828    rs9651751   -   1.000   -   -   1.000   -   1.000   rs9651751
71278915    rs9651752   -   1.000   -   -   1.000   -   1.000   1.000   rs9651752
71279052    rs73530502  -   0.116   -   -   0.116   -   0.116   0.116   0.116   rs73530502
',na.strings='-', header=TRUE, stringsAsFactors = FALSE, fill=TRUE)
x[,1] <- NULL
rownames <- x[,1]
x <- sapply(x[,-1], as.numeric)
rownames(x) <- rownames
x
            rs11828013 rs7931369 rs567411332 rs184532784 rs7931583 rs555937772 rs9651750 rs9651751 rs9651752 rs73530502
rs11828013          NA        NA          NA          NA        NA          NA        NA        NA        NA         NA
rs7931369           NA        NA          NA          NA        NA          NA        NA        NA        NA         NA
rs567411332         NA        NA          NA          NA        NA          NA        NA        NA        NA         NA
rs184532784         NA        NA          NA          NA        NA          NA        NA        NA        NA         NA
rs7931583           NA     1.000          NA          NA        NA          NA        NA        NA        NA         NA
rs555937772         NA        NA          NA          NA        NA          NA        NA        NA        NA         NA
rs9651750           NA     1.000          NA          NA     1.000          NA        NA        NA        NA         NA
rs9651751           NA     1.000          NA          NA     1.000          NA     1.000        NA        NA         NA
rs9651752           NA     1.000          NA          NA     1.000          NA     1.000     1.000        NA         NA
rs73530502          NA     0.116          NA          NA     0.116          NA     0.116     0.116     0.116         NA
data <- read.table(file="line.txt", na.strings = "-", sep = "\t",
header=TRUE, stringsAsFactors=FALSE, fill=TRUE)