read.table,one line matrices等

时间:2014-09-10 12:59:29

标签: r

我正在努力解决一个我无法修复的简单问题,可能因为缺少合适的关键字而无法查找......

我有以下文件(test.data):

Th  Ba  Rb  La  Ce  Nd  Sm  Eu
PM  0.0813  6.049   0.5353  0.6139  1.6011  1.1892  0.3865  0.1456
V.MORB  0.333   0.459   0.356   0.261   0.224       0.203   0.189

请注意,它是以制表符分隔的(在屏幕上不可见,对不起),没有尾随制表符,第一行中少了一个项目,因此它将被解析为同名。另请注意,有一个缺少的项目(第二行,col。“Nd”);它在文件中是完全空的(即两个连续的标签,两者之间没有任何内容)

> foo<-read.table("test.data",sep="\t")
> foo
           Th    Ba     Rb     La     Ce     Nd     Sm     Eu
PM     0.0813 6.049 0.5353 0.6139 1.6011 1.1892 0.3865 0.1456
V.MORB 0.3330 0.459 0.3560 0.2610 0.2240     NA 0.2030 0.1890
> rownames(foo)
[1] "PM"     "V.MORB"
> colnames(foo)
[1] "Th" "Ba" "Rb" "La" "Ce" "Nd" "Sm" "Eu"

对我来说很好。

现在:

> y<-c(1,2,3,4)
> plot(x=foo["PM",1:4],y=y)
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ

为什么?可能是因为

> foo["PM",1:4]
       Th    Ba     Rb     La
PM 0.0813 6.049 0.5353 0.6139
> y
[1] 1 2 3 4
foo和y显然是两种不同的动物!

尽管如此,我经常对子矩阵进行子集和绘图,所以foo有什么问题,以及如何治愈它?

由于

杰夫

更新

> str(foo)
'data.frame':   2 obs. of  8 variables:
 $ Th: num  0.0813 0.333
 $ Ba: num  6.049 0.459
 $ Rb: num  0.535 0.356
 $ La: num  0.614 0.261
 $ Ce: num  1.601 0.224
 $ Nd: num  1.19 0
 $ Sm: num  0.387 0.203
 $ Eu: num  0.146 0.189

更新到我的更新(抱歉):

> plot(x=foo[1,1:4],y=y)
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ

好的,我们知道。

 > plot(x=foo[1,1:2],y=y[1:2])   
 > plot(x=foo[1:2,1],y=y[1:2])

两人都愉快地工作。现在我迷路了。为什么foo [1,1:2]和foo [1,1:4]表现不一样?

0 个答案:

没有答案