Saya memiliki bingkai data yang terdiri dari 2 kolom dan 3110 baris. Kolom X adalah konstan, sedangkan kolom Y mengubah setiap baris. Saya ingin membuat loop yang akan menghasilkan plot pencar untuk setiap baris, dan pada akhirnya menyimpan plot pencar ke desktop saya.

Kode asli yang akan saya gunakan untuk membuat satu scatter plot adalah:

X <- Abundances$s__Coprobacillus_cateniformis
Y <- Abundances$Gene1

plot(X, Y, main = "Species Vs Gene Expression", 
     xlab = "s__Coprobacillus_cateniformis", ylab = "Gene1",
     pch = 19, frame = FALSE)

Jadi, variabel X adalah nama spesies, dan akan tetap konstan. Variabel Y adalah nama gen, dan akan berubah untuk masing-masing dari 3110 plot. Saya menggunakan persentase kelimpahan untuk ekspresi gen dan spesies dari kerangka data lain yang disebut "Kelimpahan".

Cuplikan singkat data saya terlihat seperti itu, memiliki 2 kolom, satu kolom bernama Predictor, dan satu kolom bernama response:

Response <- c("ENSG00000000005.5",  "ENSG00000001167.10", "ENSG00000001617.7", "ENSG00000003393.10",  "ENSG00000004142.7")
Predictor <- c("s__Coprobacillus_cateniformis",  "s__Coprobacillus_cateniformis", "s__Coprobacillus_cateniformis",  "s__Coprobacillus_cateniformis", "s__Coprobacillus_cateniformis" )

Jika ada yang bisa membantu saya menghasilkan loop yang dapat membuat plot pencar untuk setiap gen individu (pada sumbu y), terhadap specie pada sumbu X, dan kemudian segera menyimpan plot ini di desktop saya, itu akan sangat bagus!

Terima kasih.

r
0
Sarah 12 Mei 2021, 05:24

1 menjawab

Jawaban Terbaik

Tidak mungkin menguji tanpa sampel dari Abundances, tetapi menurut saya ini berada di jalur yang benar. Hal utama yang perlu diperhatikan adalah $ tidak berfungsi dengan string, tetapi [[ berfungsi: Abundances$Gene1 sama dengan Abundances[["Gene1"]] sama dengan col = "Gene1"; Abundances[[col]] .

for(i in seq_along(Response)) {
  png(filename = paste0("plot_", Response[i], ".png"))
  X <- Abundances[[Predictor[i]]]  
  Y <- Abundances[[Response[i]]]
  plot(X, Y, main = "Species Vs Gene Expression", 
       xlab = Response[i], ylab = Predictor[i],
       pch = 19, frame = FALSE)
  dev.off()
}

Jika Anda ingin plot di desktop Anda, atur itu sebagai direktori kerja atau letakkan tempel ke desktop Anda sebagai bagian dari nama file.

0
Gregor Thomas 12 Mei 2021, 13:23