我正在準備一個數據集以在程序rpy(R,它運行在Python中)中運行以進行統計分析。它看起來像這樣:在for循環中創建新的數組(Python)
data = [[0, 1, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 1, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 1, 0, 0, 0, 0, 1],
[0, 0, 1, 1, , 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0, 1, 0]]
我使用這個數據,我需要從獨立的人(x)的因變量(Y)隔離。我需要爲每年的每個列創建一個新列表,如下所示:
y = data[:,9]
x1 = data[:,0]
x2 = data[:,1]
x3 = data[:,2]
x4 = data[:,3]
x5 = data[:,4]
x6 = data[:,5]
x7 = data[:,6]
x8 = data[:,7]
x9 = data[:,8]
x10 = data[:,9]
假設我的數據有67列。有沒有辦法循環遍歷所有列,並自動創建每一列,而無需輸入所有列?我不想硬編碼所有陣列沿此線長達67
的東西,但它不工作:
i=0
for d in data:
"x%d"%i = data[:,i-1]
i+=1
這是代碼的其餘部分:
rpy.set_default_mode(rpy.NO_CONVERSION)
linear_model = rpy.r.lm(rpy.r("y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10"), data = rpy.r.data_frame(x1=x1,x2=x2,x3=x3,x4=x4,x5=x5,x6=x6,x7=x7,x8=x8,x9=x9,x10=x10,y=y))
rpy.set_default_mode(rpy.BASIC_CONVERSION)
print linear_model.as_py()['coefficients']
summary = rpy.r.summary(linear_model)
您期待的輸出是什麼?問題很難遵循。 – Sibi
我想自動創建x1 = data [:,1],x2 = data [:,2] ....不必硬編碼到x67 = data [:,67]。 – ono
當你的因變量'y'被創建爲'y = x10'時,你確定要包含'x10'作爲一個獨立變量嗎? – lgautier