2013-09-30 80 views
0

創建我有這樣的代碼替換名單列表中代表

nd = 100 
scores$data = factor(rep(c("wine", "beer", "coffee", "soda"), nd)) 

但不要列出一個一個葡萄酒啤酒咖啡和蘇打水,有沒有把在那裏,而不是一個列表的另一種方式?例如 。

keywordName = list("wine", "beer", "coffee", "soda") 
scores$data = factor(rep(c(keywordName), nd)) 

但是,這沒有爲我工作。 是否有解決方案?

+0

我想只有當你'unlist'它首先(但爲什麼要使用一個列表?)。因素需要一個原子向量,我認爲,因爲它需要對元素進行排序,並且不能認爲列表只包含單一類型的數據。 – joran

+1

(順便說一句,它'_is_有點不幸,'sort.list'不會排序列表。) – joran

+0

請注意'rep(c(keywordName),nd)'將是一個長度爲100的列表,而不是像'rep(c (「酒」,「啤酒」,「咖啡」,「蘇打水」),nd)'。行可能是'分數'應該有的? –

回答

1

希望我正確解釋了我的自我 我基本上只是在代碼中使用了未列出的(keywordName)。 nd實際上是在其他地方計算的。 所以我的問題是,因爲我可以完美地計算出和得到我的得分正確,但關鍵字的類型 我要列出它是相當動態的,我不知道如何將所有這些關鍵字存儲在列表中然後只需要 就可以將其調出,而不是一個接一個地對其進行硬編碼。

所以我的解決辦法是通過這些關鍵字可以存儲在你選擇的任何方式的列表,然後只使用不公開把關鍵字英寸

 eg; 
     keywordName = c("pepsi","coke") 
     scores$data = factor(rep(c(unlist(keywordName)), nd))