2015-01-26 5 views
1

사용자 정의 함수를 통해 하나의 파일로 결합하려는 두 개의 파일 목록이 있습니다 나는 창조했다.for loop (i, j) - i = 1 및 j = 1을 얻고 i = 2 및 j = 2 등을 얻습니다.

다음 예제에서 사용자 지정 함수는이 줄 print(paste(i, j))로 바꿀 수 있습니다. 내 요점을 설명하기 위해 인쇄/붙여 넣기를 사용하고 있습니다.

l1 <- c("file1a", "file1b") 
l2 <- c("file2a", "file2b") 

for(i in seq(along = l1)) { 
for(j in seq(along = l2)) { 
print(paste(i, j)) 
} 
} 

# [1] "1 1" 
# [1] "1 2" 
# [1] "2 1" 
# [1] "2 2" 

내가 얻을 수있는 방법

# "1" "1" file1a and file2a where a = 1 

# "2" "2" file1b and file2b where b = 2 

만?

따라서, 당신이 찾고있는 것을

# "1 2" file1a and file2b where a = 1 and b = 2 

# "2 1" file1b and file2a where a = 1 and b = 2 
+2

'I = j'합니다. 두 개가 아닌 하나의 루프 만 사용하십시오. –

+0

@ Konrad Rudolph이 상황에서 루프 하나를 사용하는 방법에 대한 예를 들려 줄 수 있습니까? 고맙습니다. – iembry

+0

'for (i in seq_along (l1)) print (paste (i, i))'에 대해서. –

답변

1

인가 무시?

for (pair in Map(c,1:4,1:4)) print(paste(pair[1],pair[2])) 
#[1] "1 1" 
#[1] "2 2" 
#[1] "3 3" 
#[1] "4 4" 

또 다른 예 :

for (pair in Map(c,l1,l2)) print(paste(pair[1],pair[2])) 
#[1] "file1a file2a" 
#[1] "file1b file2b" 

또한 바로 수행 할 수 있습니다

Map(paste,l1,l2) 
#$file1a 
#[1] "file1a file2a" 
# 
#$file1b 
#[1] "file1b file2b" 
+0

네, 그게 제가 찾고있는 것입니다. 나는 마지막 예제를 사용할 것이다. 고맙습니다. – iembry

관련 문제