从CSV文件中获取满足某些参数条件的随机数据

时间:2014-08-12 22:18:40

标签: psychopy

我有一个CSV文件,如下所示:

cond, arg
T, arg1 
T, arg2
T, arg3
T, arg4
T, arg5
P, arg6
P, arg7
P, arg8
P, arg9
P, arg10

现在我可以从“arg”列中获取随机值,只需将值“$ arg”放入“Text element”

我的问题是,只需使用“构建器视图”,例如“文本元素”和“代码元素”,就可以随机获取属于满足条件的行的值$ cond ='P “?

1 个答案:

答案 0 :(得分:2)

我建议在Builder中执行此操作的最简单方法是将CSV文件拆分为两个单独的文件(在这种情况下,一个包含" arg1" - " arg5"另一个包含" arg6" - " arg10"),命名为T.csv和P.csv。

然后在循环中,不是使用硬编码的条件文件名,例如" conditions.csv",而是输入变量名称,例如" $ conditionFilename" (没有引号)。然后,您只需要在创建循环之前指定该变量的值。例如我们假设您添加一个名为" conditionType"的字段。到实验设置对话框,实验者将在每次运行前设置该对话框,其中包含值" P"或" T"。然后在代码组件中,在" Begin Experiment"选项卡,输入如下内容:

if expInfo['conditionType'] == 'P':
    conditionFilename = 'P.csv'
else:
    conditionFilename = 'T.csv'

将循环设置为随机,您将在这些特定试验中获得随机选择。 我认为conditionType变量将与其他实验设置一起自动存储在您的数据中。