2015-07-20 79 views
0

我想从整数的制表符分隔文本文件中读取矩阵(所有值,无空列或空列)并自动命名列(根据第一个线):R自动读取整数值矩阵

a b c 
9 2 3 
2 9 6 
3 2 4 
5 3 3 

我已经试过read.csv()函数read.table()和扫描()方法和读取该文件,但我想要的东西:

1-自动识别列名(无需一一提及 名称)。

2-我将能够把它们当作整数的矩阵;运行rcorr(数据)位数(数据$ A,0.9)代替rcorr(as.matrix(数据))位数(as.matrix(数据$ A),0.9)任何时候。

有关最简单(但有效)的方法的任何想法?

+3

对于使用'read.table'然后将其强制转换为矩阵是个大问题,我有点不知所措......? – joran

+0

'txt < - “a \ tb \ tc \ n9 \ t2 \ t3 \ n2 \ t9 \ t6 \ n3 \ t2 \ t4 \ n5 \ t3 \ t3”'是您的数据(请参阅'cat(txt)') 'as.matrix(read.table(text = txt,sep =“\ t”,header = TRUE))'可以正常工作并给你正是你想要的。 – thelatemail

+0

@thelatemail:你说得对。谢谢。我只是想出了标题标题中特殊字符(#)的问题。 – Alisa

回答

0
data <-- as.matrix(read.table("c:\\temp\\inFile.tsv", header=TRUE)) 

注意当有标题行中的特殊字符(#),我有以下错误:

函数read.table中的错误( “...”):不是列名的详细列

所以标题行中不应该有特殊字符。它也会自动检测分隔符(“\ t”)。

1

read.table怎么样?

read.table(text="a b c 
       9 2 3 
       2 9 6 
       3 2 4 
       5 3 3", header=TRUE) 

>  a b c 
    1 9 2 3 
    2 2 9 6 
    3 3 2 4 
    4 5 3 3 

它也有选项,输入文件,宣告分离器,等等。看help(read.table)

+0

我正在阅读文件。无论如何,data < - read.table(“c:\\ temp \\ inFile.tsv”,header = TRUE)会生成“列数多于列名称”错误。 – Alisa

+1

@Alisa你可以用'row.names = 1'或其他值来尝试它,这取决于你的实际数据是什么样的 –

+2

@Alisa然后你只是没有指定所有的参数。你可以试试'sep =“\ t”'。 – joran