Я создаю корреляции с использованием R, с помощью следующего кода:Использование 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» будет удалена. Это возможно? Если я прочитаю в обоих столбцах в качестве фрейма данных, я могу искать каждый столбец отдельно? Или найти квартили, а затем ввести это значение в код, чтобы удалить соответствующие строки?
Еще раз спасибо, и извините за эволюцию вопроса!
Привет, добро пожаловать в SO. Поскольку вы новичок здесь, вы можете прочитать разделы [** about **] (http://stackoverflow.com/about) и [** FAQ **] (http://stackoverflow.com/faq) сайта, чтобы помочь вам извлечь максимальную выгоду из этого. Также прочитайте [**, как сделать отличный воспроизводимый пример **] (http://stackoverflow.com/q/5963269/1478381) и соответствующим образом обновите свой вопрос! –