1

1000 個のデータフレームのリストがあります (それぞれに同じ名前の 4 つの列があります)。プロットを描画し、インタラクティブに作業したいと考えています。以下は例です(単一のリストに3つのデータフレームを使用)。

# dummy data 
c1 <- rnorm (40, 0.1, 0.02); c2 <- rnorm (40, 0.3, 0.01)
c3 <- rnorm (40, 0.5, 0.01); c4 <- rnorm (40, 0.7, 0.01)
c5 <- rnorm (40, 0.9, 0.03)
Yv <- 0.3 + rnorm (200, 0.05, 0.05)

 # frist dataframe 
    var1 <- data.frame (idnames = paste ("ID", 1:200, sep = ""), Theta = round (c(c1, c2, c3, c4, c5), 2), R = round (Yv, 2),     cltr = c(rep(1:5, each = 40)))

# same dummy data filled in second dataframe 
var3 <- data.frame (idnames = paste ("ID", 1:200, sep = ""), Theta = round (c(c1, c2, c3, c4, c5), 2), R = round (Yv, 2),     cltr = c(rep(1:5, each = 40)))

    # same dummy data filled in third dataframe
    var_5 <- data.frame (idnames = paste ("ID", 1:200, sep = ""), Theta = round (c(c1, c2, c3, c4, c5), 2), R = round (Yv, 2),     cltr = c(rep(1:5, each = 40)))

 # the list (the original list has >1000 dataframes)
    mylist <- list (var1 = var1, var3 = var3, var_5 = var_5)

似ている各データフレームのプロットを作成したいのですが、1つずつ作業して保存し、次のプロットに移動する必要があります

# plot for var1
myd1 <- data.frame (mylist[1])
names (myd1) <- c("idnames", "Theta", "R", "cltr")
plot(myd1$Theta, myd1$R, col=myd1$cltr+1, pch = 19, main = names (mylist[1]))
exclude <- identify(myd1$Theta, myd1$R)
## left click on the points you want to exclude (right click to stop/finish)
myd1$cltr1 <- as.numeric ( myd1$cltr)+ 1
myd1$cltr1[exclude] <-  1
plot(myd1$Theta, myd1$R, col=myd1$cltr1, pch = 19, main = names (mylist[1]))

ここに画像の説明を入力

リスト内の他のデータフレーム、たとえば 2 についても同じことができます。

myd2 <- data.frame (mylist[2])
names (myd2) <- c("idnames", "Theta", "R", "cltr")
plot(myd2$Theta, myd1$R, col=myd2$cltr+1, pch = 19, main = names (mylist[2]))
exclude <- identify(myd2$Theta, myd2$R)
## left click on the points you want to exclude (right click to stop/finish)
myd2$cltr1 <- as.numeric ( myd2$cltr)+ 1
myd2$cltr1[exclude] <-  1
plot(myd2$Theta, myd1$R, col=myd2$cltr1, pch = 19, main = names (mylist[2]))

私はいくつかの問題を抱えています:

(1)プロセスをループしたいのですが、一度に1つのプロットが表示され、編集が完了するとプロットが閉じられ、次のデータフレームの新しいプロットがポップアップして動作し、リストの最後のデータフレームまで続きます。

(2)新しいデータフレームを作成する代わりに、親リスト内でプロセスをループして変更を保存することは可能ですか。

助けていただければ幸いです。

4

1 に答える 1