我正在努力解决一个我无法修复的简单问题,可能因为缺少合适的关键字而无法查找......
我有以下文件(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]表现不一样?