2016-05-17 109 views
0

我無法用StringVariables創建一個Orange表格。 下面的代碼:Orange3:字符串變量

d = Orange.data.Domain([Orange.data.StringVariable("s")])

使這個錯誤:

TypeError: variables must be primitive

似乎StringVariable僅用於元數據。所以我很擔心這一點,因爲我的數據有很多字符串,放入離散結構(每個字符串值都不相同)會是瘋狂的。 有沒有將字符串放在表格中的解決方案?

在此先感謝您的答案, 最佳, 邁克

+0

將字符串變量存儲爲元數據有什麼問題?我想你的字符串是某種標籤?你將無法從他們那裏學習(由SVM說),所以他們屬於元數據。這是否會妨礙你做一些你可能的事情,如果他們屬於「正常」屬性? – JanezD

+0

好吧,似乎我誤解了「元數據」的含義:(但是,由於我的代碼行(我的消息中的第一行)不起作用,我應該如何聲明該域? – mike

回答

0

這個問題可能是老了,但我發現它通過谷歌,並希望提供的如何使用中繼「列」一個簡單的例子。

您需要指定元變量,與指定「正常」變量的方式相同,只需在Domain構造函數內的metas參數內指定。

from Orange.data import * 

taskid = StringVariable(name="taskid") 
logdata = StringVariable(name="logdata") 

domain = Domain([] , metas=[taskid, logdata]) 

data = Table(domain, [ 
["uuid1","some more stuff"], 
["uuid2","some more stuff"] 
]); 

out_data = data;