我正在写一个脚本,以两个向量读取两个.txt文件。之后,我要进行Spearman的排名相关性并绘制结果。
第一个向量值的长度为12-13个字符(例如7.3445555667或10.3445555667),第二个向量值的长度为一个字符(例如1或2)。

代码:

vector1 <- read.table ("D:...path.../mytext1.txt", header=FALSE)
vector2 <- read.table ("D:...path.../mytext2.txt", header=FALSE)
cor.coeff = cor(vector1 , vector2 , method = "spearman")
cor.test(vector1 , vector2 , method = "spearman")
plot(vector1.var, vector2.var)

.txt文件仅包含数字值。

我遇到两个错误,第4行中的第一个错误就像是“'x'必须是数值向量”
第二个错误发生在第5行,就像“找不到对象向量1.var”

我也试过
 plot(vector1, vector2)

代替
 plot(vector1.var, vector2.var)

但是然后出现一个错误,例如“stripchart.default(x1,...)中的错误:无效的绘图方法

该实现面向http://www.gardenersown.co.uk/Education/Lectures/R/correl.htm#correlation

最佳答案

我怀疑vector1vector2是向量。阅读部分中记录的?read.table:

值:

    A data frame (‘data.frame’) containing a representation of the
    data in the file.

....

因此,即使您的两个文本文件仅包含一个变量,读入的两个对象也将是每个具有单个组件的数据帧。

其次,您的数据文件不包含标题,因此R将组成一个变量名。我尚未对此进行测试,但是IIRC您将vector1vector2中的变量都称为X1。在head(vector1)(或vector2)上执行names(vector1)和,以查看对象在R中的外观。

我可以看到,为什么可能会导致vector1.var起作用,但是您应该意识到,就R而言,它正在寻找一个名为vector1.var的对象。 .只是R对象名称中的任何其他字符。如果您打算将.用作子集或选择运算符,则需要阅读R中的子集运算符。这些是$[[[。例如,参见R Language Definition manualR manual

我怀疑您可以将代码更改为:
vector1 <- read.table ("D:...path.../mytext1.txt", header=FALSE)[, 1]
vector2 <- read.table ("D:...path.../mytext2.txt", header=FALSE)[, 1]
cor.coeff <- cor(vector1 , vector2 , method = "spearman")
cor.test(vector1 , vector2 , method = "spearman")
plot(vector1, vector2)

但我想您的两个文本文件中的内容有很多...

关于r - 斯皮尔曼等级相关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10386113/

10-12 16:50