2017-10-31 1 views
0

다음 for 루프의 출력을 하나의 벡터에 넣고 싶습니다.R for for loop in vector

test=c("A","B","C","D") 
for(i in 1:3) 
{e=runif(1,5,10); 
    f=round(e); 
    g=sample(test,f,TRUE); 
    h=paste(g,collapse = ""); 
    print(h)} 

출력 :

[1] "BDCCABD" 
[1] "DDBAADBBAA" 
[1] "DACCAB" 

내가 좋아하는 벡터 좀하고 싶습니다 :

+0

을,'H [내가 ] = paste (g, collapse = "")'. – patL

답변

0

당신은 벡터를 언급, 당신은 반복의 제비가, 특히 vector

V=vector() 
test=c("A","B","C","D") 
for(i in 1:3) 
{e=runif(1,5,10); 
f=round(e); 
g=sample(test,f,TRUE); 
h=paste(g,collapse = ""); 
V[i]=h} 

V 
[1] "BCCAD"  "CCDCACBAD" "ADCDBCBCC" 
V[1] 
[1] "BCCAD" 
+0

빠른 도움 감사합니다 –

+0

@WiebkeKn Yw ~ :-) 좋은 하루 되세요. – Wen

0

내가 생각

i=c("BDCCABD","DDBAADBBAA","DACCAB") 

여러분의 도움에 감사드립니다을 이런 식으로 뭔가 :

test=c("A","B","C","D") 
h_final<-0 
for(i in 1:3){e=runif(1,5,10); 
f=round(e); 
g=sample(test,f,TRUE); 
h=paste(g,collapse = ""); 
h_final[i]<-h 
if(i==3){print(h_final)} 
} 
0

이와 비슷한?

j <- character() 

test = c("A", "B", "C", "D") 
for (i in 1:3) { 
    e = runif(1, 5, 10) 
    f = round(e) 
    g = sample(test, f, TRUE) 
    h = paste(g, collapse = "") 

    j <- c(j, h) 
} 

print(j) 

> print(j) 
[1] "DDDBADBCD" "ABBCBCC" "BBCAA" 

편집 : 코드의 더 간단한

test = c("A", "B", "C", "D") 
for (i in 1:3) { 
    e = runif(1, 5, 10) 
    f = round(e) 
    g = sample(test, f, TRUE) 
    h[i] = paste(g, collapse = "") 
    } 

> print(h) 
[1] "DBDADDD" "AABDA" "CDBDDABC" 
1

그냥 약간의 적응을 할 것입니다. 당신은 정말 print(h)

set.seed(8632) # make the results reproducible 

i <- sapply(1:3, function(x){ 
    e = runif(1, 5, 10) 
    f = round(e) 
    g = sample(test, f, TRUE) 
    h = paste(g, collapse = "") 
    print(h) 
    h 
}) 

i 
#[1] "CACDAABCC" "ADDAACA" "ACCDAACAB" 

가 필요하십니까?

EDIT.
방금 ​​테스트 해본 결과 다음과 같은 단순화가 똑같은 결과를 제공합니다.

set.seed(8632) # make the results reproducible 

j <- sapply(1:3, function(x){ 
    f <- sample(5:10, 1)  # this is equivalent to your original code 
    g = sample(test, f, TRUE) 
    h = paste(g, collapse = "") 
    print(h) 
    h 
}) 

j 
#[1] "CACDAABCC" "ADDAACA" "ACCDAACAB" 

identical(i, j) 
#[1] TRUE 
0

당신은 당신은 빈 벡터를 초기화해야 vectors in R

살펴 보셔야합니다,의 당신이없이 test 벡터에 함수를 직접 적용 할 수 test_vector

test_vector = c() 
test=c("A","B","C","D") 

for(i in 1:3) 
    {e=runif(1,5,10); 
    f=round(e); 
    g=sample(test,f,TRUE); 
    h=paste(g,collapse = ""); 
    print(h) 
    test_vector <- c(test_vector,h) 
    } 

주를 부르 자 for 루프를 사용합니다.

+0

for 루프의 반복 변수는 'i'라고도합니다. – brettljausn

+0

맞아요, 방금 보지 않고 OP와 같은 이름을 사용했습니다. – bobolafrite

0

아니 가장 우아한 방법으로 사용하여 우리를 보자하지만 작동 : 루프에서

test=c("A","B","C","D") 
k = NA 
for(i in 1:3) 
{e=runif(1,5,10) 
f=round(e) 
g=sample(test,f,TRUE) 
h=paste(g,collapse = "") 
k = append(k,h) 
print(h)} 

k <- na.omit(k)