【发布时间】:2013-11-20 15:44:54
【问题描述】:
是否可以允许程序用户在他们从程序得到关于他们应该使用哪个测试的答案后上传他们的数据?我知道我需要使用 tkFileDialog 但在程序的第一部分运行后我无法运行它。如果不清楚,请告诉我。到目前为止,我的代码是:
from Tkinter import *
import tkMessageBox
root = Tk()
q1 = IntVar()
Label(root,
text="""How many samples do you have?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text="One",
padx = 20,
variable=q1,
value=1).pack(anchor=W)
Radiobutton(root,
text="Two",
padx = 20,
variable=q1,
value=2).pack(anchor=W)
q2 = IntVar()
Label(root,
text="""Which choice most closely fits your sample size?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Less than 30""",
padx = 20,
variable=q2,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """Greater than or equal to 30""",
padx = 20,
variable=q2,
value = 2).pack(anchor =W)
q3 = IntVar()
Label(root,
text="""Is the population mean known?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q3,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q3,
value = 2).pack(anchor=W)
q4 = IntVar()
Label(root,
text="""Is the standard deviation of your data known?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q4,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q4,
value = 2).pack(anchor =W)
q5 = IntVar()
Label(root,
text="""Do you wish to compare two groups?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q5,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q5,
value = 2).pack(anchor =W)
q6 = IntVar()
Label(root,
text="""Do you want to compare two sample means?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q6,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q6,
value = 2).pack(anchor =W)
q7 = IntVar()
Label(root,
text="""Is your data paired (E.g. before and after data)?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q7,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q7,
value = 2).pack(anchor =W)
q8 = IntVar()
Label(root,
text="""Are you testing proportions?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q8,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q8,
value = 2).pack(anchor =W)
q9 = IntVar()
Label(root,
text="""Do you wish to test for a difference between observed and expected data?""",
justify = LEFT,
padx = 20).pack()
Radiobutton(root,
text = """Yes""",
padx = 20,
variable=q9,
value = 1).pack(anchor=W)
Radiobutton(root,
text = """No""",
padx = 20,
variable=q9,
value = 2).pack(anchor =W)
Button(root, text = "Submit", command=choose).pack()
def choose():
if q1.get() == 1 and q2.get() == 1 and q3.get() == 2 and q4.get() == 2 and q5.get() == 1 and q6.get() == 2 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2 :
tkMessageBox.showinfo( 'decision', 'You should use the t-test!')
elif q1.get() == 1 and q2.get() == 2 and q3.get() == 1 and q4.get() == 1 and q5.get() == 2 and q6.get() == 2 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2:
tkMessageBox.showinfo('decision', 'You should use the z-test!')
elif q1.get() == 1 and q2.get() == 1 and q3.get() == 2 and q4.get() == 2 and q5.get() == 1 and q6.get() == 2 and q7.get() == 1 and q8.get() == 2 and q9.get() == 2:
tkMessageBox.showinfo('decision', 'You should use the paired t-test!')
elif q1.get() == 2 and q2.get() == 1 and q3.get() == 2 and q4.get() == 2 and q5.get() == 1 and q6.get() == 1 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2:
tkMessageBox.showinfo('decision', 'You should use the two-sample t-test!')
elif q1.get() == 2 and q2.get() == 2 and q3.get() == 1 and q4.get() == 1 and q5.get() == 2 and q6.get() == 1 and q7.get() == 2 and q8.get() == 2 and q9.get() == 2:
tkMessageBox.showinfo('decision', 'You should use the two-sample z-test!')
elif q1.get() == 1 and q2.get() == 2 and q3.get() == 1 and q4.get() == 1 and q5.get() == 2 and q6.get() == 2 and q7.get() == 2 and q8.get() == 1 and q9.get() == 2:
tkMessageBox.showinfo('decision', 'You should use the 1-prop z-test!')
elif q1.get() == 2 and q2.get() == 2 and q3.get() == 1 and q4.get() == 1 and q5.get() == 2 and q6.get() == 2 and q7.get() == 2 and q8.get() == 1 and q9.get() == 2:
tkMessageBox.showinfo('decision', 'You should use the 2-prop z-test!')
elif q1.get() == 1 and q2.get() == 2 and q3.get() == 2 and q4.get() == 2 and q5.get() == 2 and q6.get() == 2 and q7.get() == 2 and q8.get() == 2 and q9.get() == 1:
tkMessageBox.showinfo('decision', ' You should use the chi-square test!')
else:
tkMessageBox.showinfo('decision', 'You have either incorrectly answered a question about your data or none of the available tests are appropriate.')
root.destroy()
root.mainloop()
【问题讨论】:
-
定义“上传”。用户从文件对话框中选择文件后,数据应该发生什么?
-
长期目标是使用他们选择的文件来运行他们被告知最适合他们的数据的任何统计程序。现在,我需要能够让他们选择他们想要使用的文件。
-
在回答完所有问题后,您希望打开 2-prop 测试吗?如果是,这些是否存储在每个人都可以访问的位置(例如服务器或每个人都使用一台计算机)?
-
我下面的回答解决了你的问题吗?
标签: python file-upload tkinter filedialog