我正在使用 R 创建相关性,代码如下:
Values<-read.csv(inputFile, header = TRUE)
O<-Values$Abundance_O
S<-Values$Abundance_S
cor(O,S)
pear_cor<-round(cor(O,S),4)
outfile<-paste(inputFile, ".jpg", sep = "")
jpeg(filename = outfile, width = 15, height = 10, units = "in", pointsize = 10, quality = 75, bg = "white", res = 300, restoreConsole = TRUE)
rx<-range(0,20000000)
ry<-range(0,200000)
plot(rx,ry, ylab="S", xlab="O", main="O vs S", type="n")
points(O,S, col="black", pch=3, lwd=1)
mtext(sprintf("%s %.4f", "pearson: ", pear_cor), adj=1, padj=0, side = 1, line = 4)
dev.off()
pear_cor
我现在需要找到每组数据的下四分位数并排除下四分位数内的数据。然后,我想重写没有这些值的数据,并在相关分析中使用新的数据列(因为我想通过下四分位数对数据进行阈值处理)。如果有一种方法我可以编写它,以便通过应用来自 Java 的参数(就像我对输入文件名一样)轻松更改阈值,那就更好了!
太感谢了。
我现在已经暗示了下面的答案,这是有效的,但是我需要将数据对保持在一起以进行相关性。这是我的数据示例(来自 csv):
Abundance_O Abundance_S
3635900.752 1390.883073
463299.4622 1470.92626
359101.0482 989.1609251
284966.6421 3248.832403
415283.663 2492.231265
2076456.856 10175.48946
620286.6206 5074.268802
3709754.717 269.6856808
803321.0892 118.2935093
411553.0203 4772.499758
50626.83554 17.29893001
337428.8939 203.3536852
42046.61549 152.1321255
1372013.047 5436.783169
939106.3275 7080.770535
96618.01393 1967.834701
229045.6983 948.3087208
4419414.018 23735.19352
因此,如果一个值不符合我的四分位数阈值(0.25 四分位数),我需要排除行中的两个值。因此,如果 O 的四分位数为 45000,则将删除“42046.61549,152.1321255”行。这可能吗?如果我将两列都作为数据框读取,我可以分别搜索每一列吗?或者找到四分位数,然后将该值输入到代码中以删除相应的行?
再次感谢,并对问题的演变感到抱歉!