2016-06-16 93 views
0

我已經在R中編寫了一個循環。代碼需要經過列表中定義的變量列表,然後爲每個變量執行一個函數。在R中寫入一個循環

問題1 - I可通過變量
問題2列表中未循環 - 我需要從值中的每個輸出插入蒙戈DB

下面的列表的一個示例:

121715771201463_626656620831011 
121715771201463_1149346125105084 

基於這個值 - 我正在運行一個代碼,我希望這個輸出被插入到MongoDB中。現在僅所述第一值和其對應的輸出被插入

test_list < - C( 「121715771201463_626656620831011」, 「121715771201463_1149346125105084」, 「121715771201463_1149346125105999」)

爲(i的test_list) {// MyFunction的// mongo.insert(蒙戈,DBNS,I) }

我可以只挑數值爲F第一價值,而不是全部從名單

任何幫助表示讚賞。

+2

當您創建一個列表也許應該使用小'C':test_list < - c(「121715771201463_626656620831011」,「121715771201463_1149346125105084」,「121715771201463_1149346125105999」) –

回答

0

這裏不清楚「變量」是否與「值」相同。

如果你的意思是變量實際上是你構造的列表中的一個元素,那麼我認爲上面的Ilyas註釋可以解決這個問題。

如果「變量」是工作區中的對象,而列表中的元素是要處理的對象的名稱,則需要確保使用get。像這樣:

for(i in ls()){ 
    cat(paste(mode(get(i)),"\n")) 
} 

ls()返回對象的名稱列表。上面的循環遍歷它們,使用get來獲得適當的對象。從那裏,你可以做你想要做的處理(在上面的例子中,我只是打印了對象的模式)。

希望這有助於某種方式。

1

試試這個例子,它打印最終字符

myfunction <- function(x){ print(substr(x, 27, nchar(x))) } 

test_list <- c("121715771201463_626656620831011", 
       "121715771201463_1149346125105084", 
       "121715771201463_1149346125105999") 
for (i in test_list){ myfunction(i) } 
for (j in 1:length(test_list)){ myfunction(test_list[j]) } 

最後兩行應在每次產生

[1] "31011" 
[1] "105084" 
[1] "105999" 
+0

我能夠重現您的邏輯,我首先刪除所有現有的對象並釋放空間,然後邏輯工作... – ThePatBan