我即将开始一个简短的项目,该项目将涉及合理数量的数据,我希望以合理的方式存储这些数据,最好是postgressql数据库。
我将简要介绍这项任务。我将处理和分析一系列图像的数据,每个图像都有一个唯一的ID。对于每个图像,我和其他操作员将完成一些简单的图像处理任务,包括调整角度和放置区域,最终结果是许多定量参数,如均值、方差等。我们预计这些措施将存在运营商内部和运营商之间的差异,这也是我想分析的。
我最初的计划是以以下方式存储数据
ID Operator Attempt Date Result1 Result2 Reconstruction Method Iterations
1 AB 1 01/01/13 x x FBP
1 AB 2 01/01/13 x x FBP
1 CD 1 01/01/13 x x FBP
1 CD 2 01/01/13 x x FBP
2 AB 1 01/01/13 x x FBP
2 AB 2 01/01/13 x x FBP
2 CD 1 01/01/13 x x FBP
2 CD 2 01/01/13 x x FBP
1 AB 1 11/01/13 x x FBP
1 AB 2 01/01/13 x x MLEM
现在,我想比较的是(使用相关性和Bland-Altman图)相同操作员处理相同图像的结果差异(图像必须具有相同的ID、日期、重建技术)。即对于所有相同的图像和操作员,尝试1和2如何不同。我想对互操作性可变性进行同样的分析,即对于所有用FBP重建的图像,AB与ID为1的CD的比较如何,或者对于所有用MLEM重建的图像的EF与AB的比较如何。具有相同唯一ID但在不同日期或重建技术获取的图像不应进行比较,因为它们将包含操作员可变性之外的差异。
我有各种R脚本来进行分析,但我不确定的是如何访问我的数据,并将其以合理的格式排列以进行分析,或者我计划的存储方法是否适合这样做。过去我曾使用perl访问数据库并提取数字,但我最近发现Rpostgressql可能更合适。
我想我的问题是,对于这样一个数据库,我该如何挑选:
(a) 所有唯一的图像(ID,在同一日期用相同的重建方法获取),并比较操作员AB(CD等)在尝试1和2 的所有Result1中的差异
(b) 比较AB和CD、CD和EF等之间的所有Result1尝试1也是一样的
下面是我想要的(a)输出的一个例子
ID Operator Date Result1 (Attempt 1) Result1(Attempt 2)
1 AB 01/01/13 10 12
2 AB 01/01/13 22 21
3 AB 03/01/13 15 17
4 AB 04/01/13 27 25
5 AB 06/01/13 14 12
1 AB 11/01/13 3 6
然后我会分析最后2列
(b)比较AB和CD 的示例输出
ID Date Result1 (Op: AB, Att: 1) Result1(Op: CD: Att 1)
1 01/01/13 10 12
2 01/01/13 22 21
3 05/01/13 12 14
1 11/01/13 19 24
这些只是一个粗略的想法!
(a) 所有唯一的图像(ID,在同一日期获取重建方法),并比较操作员AB(CD等)尝试1和2
对于(a),可以使用利用参数DISTINCT
&CCD_ 2。
例如
SELECT DISTINCT Images FROM YourTable SORT BY DATE(Date), "Reconstruction Method"
(b) 比较AB和CD之间的所有Result1尝试1也是一样的,CD和EF等
对于(b),可以使用使用参数WHERE
的SQL语句。
例如
SELECT * From YourTable WHERE Operator=AB