0

我在 40 个人中测量了许多变量的两次重复。我的数据集按列排列,每列代表一个变量。这意味着在每一列中,我有 40 个个体的两个重复,即 80 个值。一个额外的列是个人的身份,另一个额外的列是复制品(1 或 2)。

我想尽可能地保留这个结构,因为我需要它来做进一步的分析。

我试图做的没有成功(因此寻求您的帮助)是制作一组散点图(每个变量一个),x轴上的个人的第一个重复,y轴上的第二个 -轴。然后,我想用个人的 ID 标记这些点,以检测异常等......

到目前为止,我只能(部分)通过将数据集一分为二(每个复制一个),然后在两个数据集中选择相同的变量并在循环内绘制它来做到这一点。但这并不优雅。这是我到目前为止所做的代码:

datexp=d

datexp1=datexp[datexp$test=="mirror1",]
datexp2=datexp[datexp$test=="mirror2",]

datexp1=datexp1[sapply(datexp1,is.numeric)]
datexp2=datexp2[sapply(datexp2,is.numeric)]

cases=length(names(datexp))
for (i in 1:cases){
    x=datexp1[,i]
    y=datexp2[,i]
    png(paste(names(datexp)[i],".png"),width=1000, height=1000, res=150)
    plot(x,y, pch=19, xlab="test1",ylab="test2")
    dev.off()
    }

但我会很感激按照上面的解释这样做,而不是分裂。lattice 或 ggplot 都可以。另外,我更喜欢以某种方式保存这些图,然后将它们全部排列在同一个面板中,然后再将它们保存到文件中(这是我对代码所做的)。

在此先感谢您的时间。

编辑:一些可重现的数据(不确定直接从控制台粘贴是否可以......)。Fish 是 ID 列,test 是复制,另外两列是两个变量。

datexp[c(17,16,20,21)]
                           test   fish   t_arena_m  t_active_m
379_test_mirror1.csv    mirror1    379 0.057804431 0.993836415
379_test_mirror2.csv    mirror2    379 0.062271062 0.690642691
380_test_mirror1.csv    mirror1    380 0.415361546 0.918860380
380_test_mirror2.csv    mirror2    380 0.422640880 0.989496499
381_test_mirror1.csv    mirror1    381 0.017330445 0.169138477
381_test_mirror2.csv    mirror2    381 0.024966711 0.518641811
382_test_mirror1.csv    mirror1    382 0.077359120 1.000000000
382_test_mirror2.csv    mirror2    382 0.000000000 0.000000000
383_test_mirror1.csv    mirror1    383 0.057657057 0.976503916
383_test_mirror2.csv    mirror2    383 0.065101565 0.894272394
384_test_mirror1.csv    mirror1    384 0.122959014 0.999000333
384_test_mirror2.csv    mirror2    384 0.191609789 0.997336441
386_test_mirror1.csv    mirror1    386 0.095817364 0.948841860
386_test_mirror2.csv    mirror2    386 0.044122544 0.767399267
387_test_mirror1.csv    mirror1    387 0.000000000 0.007332111
387_test_mirror2.csv    mirror2    387 0.000000000 0.000000000
388_test_mirror1.csv    mirror1    388 0.030994834 0.515580737
388_test_mirror2.csv    mirror2    388 0.032989004 0.367544152
389_test_mirror1.csv    mirror1    389 0.158140310 0.943342776
389_test_mirror2.csv    mirror2    389 0.211131478 0.958340277
390_test_mirror1.csv    mirror1    390 0.357023968 1.000000000
390_test_mirror2.csv    mirror2    390 0.183766453 0.999325008
391_test_mirror1.csv    mirror1    391 0.105052526 0.661997665
391_test_mirror2.csv    mirror2    391 0.115198935 0.514066922
392_test_mirror1.csv    mirror1    392 0.031489503 0.884871709
392_test_mirror2.csv    mirror2    392 0.591636121 0.960513162
393_test_mirror1.csv    mirror1    393 0.076641120 0.631289570
393_test_mirror2.csv    mirror2    393 0.318439480 0.945815272
394_test_mirror1.csv    mirror1    394 0.000000000 0.000000000
394_test_mirror2.csv    mirror2    394 0.007671781 0.159606404
395_test_mirror1.csv    mirror1    395 0.230897286 0.991676378
395_test_mirror2.csv    mirror2    395 0.196566813 0.478290138
396_test_mirror1.csv    mirror1    396 0.123506646 0.784115766
396_test_mirror2.csv    mirror2    396 0.002415042 0.950664137
397_test_mirror1.csv    mirror1    397 0.376770538 0.808865189
397_test_mirror2.csv    mirror2    397 0.171942686 0.785571476
398_test_mirror1.csv    mirror1    398 0.000000000 0.000000000
398_test_mirror2.csv    mirror2    398 0.000000000 0.000000000
399_test_mirror1.csv    mirror1    399 0.308741789 0.548088260
399_test_mirror2.csv    mirror2    399 0.205689278 0.337316950
400_test_mirror1.csv    mirror1    400 0.149425287 0.729801766
400_test_mirror2.csv    mirror2    400 0.203966006 0.998500250
454_test_mirror1.csv    mirror1    454 0.001999667 0.916847192
454_test_mirror2.csv    mirror2    454 0.021829695 1.000000000
456_test_mirror1.csv    mirror1    456 0.272742559 0.619303851
456_test_mirror2.csv    mirror2    456 0.159980023 0.357582820
457_test_mirror1.csv    mirror1    457 0.005336001 0.207937302
457_test_mirror2.csv    mirror2    457 0.035775419 0.735706950
458_test_mirror1.csv    mirror1    458 0.003498251 0.999833417
458_test_mirror2.csv    mirror2    458 0.406870102 0.951975988
459_test_mirror1.csv    mirror1    459 0.006336502 0.021844255
459_test_mirror2.csv    mirror2    459 0.001499250 0.602032317
460_test_mirror1.csv    mirror1    460 0.274303819 0.582791396
460_test_mirror2.csv    mirror2    460 0.048475762 0.289855072
461_test_mirror1.csv    mirror1    461 0.061812729 0.106297901
461_test_mirror2.csv    mirror2    461 0.085427989 0.801630435
462_test_mirror1.csv    mirror1    462 0.032475181 0.044590274
462_test_mirror2.csv    mirror2    462 0.182928899 0.725606652
463_test_mirror1.csv    mirror1    463 0.085042521 0.423878606
463_test_mirror2.csv    mirror2    463 0.041581806 0.808723693
464_test_mirror1.csv    mirror1    464 0.234255248 0.950349883
464_test_mirror2.csv    mirror2    464 0.269121813 0.961006499
467_test_mirror1.csv    mirror1    467 0.185302450 0.905849025
467_test_mirror2.csv    mirror2    467 0.100616358 0.345327336
468_test_mirror1.csv    mirror1    468 0.000000000 0.000000000
468_test_mirror2.csv    mirror2    468 0.182939020 0.703932023
469_test_mirror1.csv    mirror1    469 0.152242788 0.983324996
469_test_mirror2.csv    mirror2    469 0.282619563 0.781036494
471_test_mirror1.csv    mirror1    471 0.000000000 0.000000000
471_test_mirror2.csv    mirror2    471 0.000000000 0.000000000
472_test_mirror1.csv    mirror1    472 0.322005664 0.699983342
472_test_mirror2.csv    mirror2    472 0.055990668 0.555407432
473_test_mirror1.csv    mirror1    473 0.222796201 0.986335611
473_test_mirror2.csv    mirror2    473 0.065134100 0.591037814
474_test_mirror1.csv    mirror1    474 0.000000000 0.000000000
474_test_mirror2.csv    mirror2    474 0.000000000 0.000000000
475_test_mirror1.csv    mirror1    475 0.050149950 0.828890370
475_test_mirror2.csv    mirror2    475 0.034155282 0.985171609
476_test_mirror1.csv    mirror1    476 0.061095389 0.723156318
476_test_mirror2.csv    mirror2    476 0.081986336 0.870188302
477_test_mirror1.csv    mirror1    477 0.111814698 0.323779370
477_test_mirror2.csv    mirror2    477 0.341109815 0.576237294
478_test_mirror1.csv    mirror1    478 0.105131623 0.923525492
478_test_mirror2.csv    mirror2    478 0.046151283 0.799400200
479_test_mirror1.csv    mirror1    479 0.000000000 0.000000000
479_test_mirror2.csv    mirror2    479 0.000000000 0.000000000
481_test_mirror1.csv    mirror1    481 0.059990002 0.939343443
481_test_mirror2.csv    mirror2    481 0.085319113 0.193301116
c0509_test_mirror1.csv  mirror1  c0509 0.000000000 0.156140643
c0509_test_mirror2.csv  mirror2  c0509 0.101149808 0.413264456
c0695_test_mirror1.csv  mirror1  c0695 0.171447632 0.982821881
c0695_test_mirror2.csv  mirror2  c0695 0.236037234 0.980718085
xh0218_test_mirror1.csv mirror1 xh0218 0.000000000 0.000000000
xh0218_test_mirror2.csv mirror2 xh0218 0.000000000 0.000000000
4

1 回答 1

0

这是我猜您正在寻找的内容,其中包含随机值的示例数据框:

require(ggplot2)

dat = data.frame(rep(seq(1:40),each =2),rep(c(1,2),40), runif(80), runif(80)+1)
names(dat) = c('id', 'replicate', 'var1', 'var2')

for(i in 3:ncol(dat)){
    png(paste(names(dat)[i],".png"),width=1000, height=1000, res=150)
    print(ggplot(dat, aes(dat[dat$replicate==1,i],dat[dat$replicate==2,i])) 
    + geom_point() + geom_text(aes(label=id[replicate==1])))
    dev.off()
}
于 2014-08-29T09:53:45.193 回答