У меня есть два файла. Я прочитал оба файла во фрейме данных в R. "ShortListedGenes" содержит 841 генов, а "EmpPval" содержит 6000 генов. Я хочу сопоставить каждый ген, присутствующий в "shortListedGenes", с генами, присутствующими в "EmpPval", и извлечь соответствующую информацию, присутствующую в 1-м, 2-м и 3-м столбце каждой строки (каждая строка представляет каждый ген) в файле "EmpPval", и добавьте его в "shortListedFile" в качестве новых столбцов. Поскольку я новичок в R, я использую простой подход и использую цикл, чтобы выполнить работу !!! но это дает ошибку. Файл "shortListedGenes" выглядит следующим образом
gene hsq hsq.se hsq.Pv ZscoreHsq PValueZ FDR
ENSG00000198502.5 0.909563 0.018102 0 50.24654734
0 0
ENSG00000225138.3 0.876861 0.018487 0 47.43122194
0 0
Второй файл "EmpPval" выглядит как
X obsExp.perExp obsExp.Pv obsExp.perExp.1000
ENSG00000000460.12 129 0.886162308 0.129
ENSG00000000971.11 268 0.728160071 0.268
Поэтому, когда ген (1-й столбец обоих файлов) совпадает, я хочу извлечь значения для соответствующего гена из файла «EmpPval» и добавить его в файл «shortListedGenes».
Код, который я пробовал до сих пор:
shortListedGenes <- read.csv("zs7-fdr0.05-Aorta.csv")
EmpPvAl <- read.csv("EmpiricalPvaluesAorta.csv")
for(i in 1:nrow(shortListedGenes))
{
for(j in 1:nrow(EmpPvAl))
{
if(shortListedGenes$gene[i] == EmpPvAl$X[j])
{
shortListedGenes$obsLessExp <- EmpPvAl$obsExp.perExp
shortListedGenes$obsExp <- EmpPvAl$obsExp.Pv
shortListedGenes$obsLessExpDiv <- EmpPvAl$obsExp.perExp.1000
}
}
}
и выдает ошибку Error in Ops.factor(EmpPvAl$X, shortListedGenes$gene[i]) : level sets of factors are different
Любое предложение / помощь будут оценены !!!. Спасибо