我有一个文件:
file<-read.csv("https://dl.dropboxusercontent.com/u/22681355/file.csv",head=T)
mode(file)
"list"
file<- file[,-1:2]
我想将文件转换为数字模式,以使内置列名消失。这有可能以某种方式吗?
我的目标是当我在文件中列出一些元素时,例如file[,2:4]
然后它应该只显示数字而不是列名。
答案 0 :(得分: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