我正在写一个脚本,以两个向量读取两个.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
最佳答案
我怀疑vector1
和vector2
是向量。阅读值部分中记录的?read.table
:
值:
A data frame (‘data.frame’) containing a representation of the
data in the file.
....
因此,即使您的两个文本文件仅包含一个变量,读入的两个对象也将是每个具有单个组件的数据帧。
其次,您的数据文件不包含标题,因此R将组成一个变量名。我尚未对此进行测试,但是IIRC您将
vector1
和vector2
中的变量都称为X1
。在head(vector1)
(或vector2
)上执行names(vector1)
和,以查看对象在R中的外观。我可以看到,为什么可能会导致
vector1.var
起作用,但是您应该意识到,就R而言,它正在寻找一个名为vector1.var
的对象。 .
只是R对象名称中的任何其他字符。如果您打算将.
用作子集或选择运算符,则需要阅读R中的子集运算符。这些是$
,[
和[[
。例如,参见R Language Definition manual或R 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/