2016-06-21 38 views
-1

我試圖設置一組for循環來嵌套一系列if循環。我有一組參數,我試圖循環但努力設置我的代碼來貫穿每個。我是真正的新R和我知道的循環是不理想,但不能確保申請家庭可以在這裏使用努力在R中使用多個for循環

所以,當我運行

for(i in seq(from=0.05, to=0.5, by=0.05)){ 

for(c in 1:5) { 
test[c,2] <- i 
test[c,1] <- c 
c = c + 1 
} 
print (i) 
} 
test 
    C I 
    1 1 0.5 
    2 2 0.5 
    3 3 0.5 
    4 4 0.5 
    5 5 0.5 

理想我想它所以我製作了一個表格,其中包含運行編號,參數值和另一個值的頻率,但努力這麼做。

有效我想找到一種方法,使其:

C I 
    1 1 0.05 
    2 2 0.05 
    3 3 0.05 
    4 4 0.05 
    5 5 0.05 
    1 1 0.1 
    2 2 0.1 
    3 3 0.1 
    4 4 0.1 
    5 5 0.1 
+2

不清楚如何是你想要的輸出! – Robert

+0

我試圖讓它產生一個數據框,它將有列:運行號,我的值和頻率,因爲這段代碼的目的是讓它包含一系列if循環,這些循環正在模擬流行病模型所以它會是i /參數循環,其中嵌套了模擬編號,if循環嵌套在它們中 – Gibbon

+0

也許你想'expand.grid(i = seq(from = 0.05,to = 0.5,by = 0.05), c = 1:5)'? – Gregor

回答

0

不知道是否能解決你的問題:

is <- seq(from=0.05, to=0.5, by=0.05) 
test<-matrix(NA,nrow=length(is),ncol=3) 
test[,1]=1:length(is) 
for(i in test[,1]){ 
    test[i,2] <- is[i] 

    for(c in 1:5) { 
    c = c + 1 
    } 
    test[i,3]<-c 
    print (is[i]) 
}  
test 

> test 
     [,1] [,2] [,3] 
[1,] 1 0.05 6 
[2,] 2 0.10 6 
[3,] 3 0.15 6 
[4,] 4 0.20 6 
[5,] 5 0.25 6 
[6,] 6 0.30 6 
[7,] 7 0.35 6 
[8,] 8 0.40 6 
[9,] 9 0.45 6 
[10,] 10 0.50 6 
+0

這是非常接近我後,有沒有一種方法來使用它來重複它x i的每個值的次數? – Gibbon

+0

在這種情況下,我認爲@格雷戈的建議將起作用! – Robert