2014-01-22 125 views
0

我有一个文件:从列表转换为数字?

file<-read.csv("https://dl.dropboxusercontent.com/u/22681355/file.csv",head=T) 

mode(file) 
"list" 

file<- file[,-1:2] 

我想文件转换为数字模式,使内置的columnames消失。这有可能做到吗?

我的目标是,当我列出文件中的某些元素时,例如file[,2:4]那么它应该只显示数字而不显示列名。

+0

我不确定您想要的是什么。 'unname()'删除名字。你可以使用'as.vector(as.matrix(file))'将数据压扁成数字向量。 – lukeA

回答

0

因为你的数据是所有的数字(除了要删除前两列),你可以轻松地将数据帧到一个数组:

x <- as.matrix(file[, -2:-1]) 
head(x) 

      a1  b1  c1  d1  e1  f1  g1  h1  i1 
[1,] 100.00000 100.00000 100.00000 100.00000 100.00000 100.00000 100.00000 100.00000 100.00000 
[2,] 99.33333 99.05363 100.00000 98.58044 97.56944 97.64706 97.34579 98.66039 98.12500 
[3,] 98.70934 104.77707 103.57143 99.15429 98.93238 103.61446 101.28008 101.35780 100.33121 
[4,] 103.92259 100.30395 98.85057 99.42370 99.64029 101.93798 100.94793 105.43085 98.09548 
[5,] 98.74182 99.69697 101.16279 99.11894 99.09025 101.14068 98.74797 99.14148 97.07481 
[6,] 99.38838 101.51976 101.14943 101.16959 100.55377 99.62406 100.63395 100.86595 100.34667 

不难子集阵列的方式你要求。试试这个:

x[1:3, 2:5] 
      b1  c1  d1  e1 
[1,] 100.00000 100.0000 100.00000 100.00000 
[2,] 99.05363 100.0000 98.58044 97.56944 
[3,] 104.77707 103.5714 99.15429 98.93238 

由于在阵列中的列名是不是在数据的事实部分,我通常会保留列名,如果它们的信息。但是,您可以更改列名称,包括NULL值:

colnames(x) <- NULL 
x[1:3, 2:5] 

     [,1]  [,2]  [,3]  [,4] 
[1,] 100.00000 100.0000 100.00000 100.00000 
[2,] 99.05363 100.0000 98.58044 97.56944 
[3,] 104.77707 103.5714 99.15429 98.93238 
+0

是的,但现在仍然存在a1 b1 c1名称,而我希望[,1] [,2] [,3] – user1723765