2013-07-12 3 views
1

세 가지 데이터 세트가 있습니다.r, data.frame에 열 추가

세트 1

A B 
    23 12 
    34 81 
    13 45 
    11 23 

세트 2 :

: 난 다음 형식으로 데이터 프레임을 생성해야하기

A B 
    -23 5 
    -3 0.1 
    .8 -2.3 
    -.6 1.4 
    4  3.2 

:

A B 
.34 1.1 
.5  2.0 
.4  1.8 

세트 3

A  B Type 
    23 12 1 
    34 81 1 
    . 
    . 
    . 
    11 23 1 
    .34 1.1 2 
    .5 2.0 2 
    .4 1.8 2 
    -23 5  3 
    . 
    . 
    . 
    4 3.2 3 
01 23,516,

내 시도 :

set1 <- data.frame(A=c(23,34,13,11),B=c(12,81,45,23)) 
    set2 <- data.frame(A=c(.34,.5,.4),B=c(1.1,2,1.8)) 
    set3 <- data.frame(A=c(-23,-3,.8,-.6,4),B=c(5,.1,-2.3,1.4,3.2)) 

    dat123 <- rbind(set1,set2,set3) 

하지만 열 Type을 추가 할 내가 할 수 없었다 수. 이처럼

+0

왜 할 수 없었다? 'Data.frame (A = c (23,34,13,11), B = c (12,81,45,23), Type = 1)'... – Roland

+0

@Roland는'Type' 칼럼을 추가하는 것은 내 질문의 다음 부분. 나는'Type'을 추가해야한다는 것을 알기 전에 제 질문의 절반 과제를해야했습니다. 그래서 내가 지금이'data.frame (A = c (23,34,13,11), B = c (12,81,45,23), Type = 1)'을한다면, 나는 많이 바꿔야한다. 내 이전 코드들. – ABC

답변

5

:

l <- list(set1, set2, set3) 
do.call(rbind, Map(data.frame, l, type = seq_along(l))) 
+0

'Map'에 대한 참고를 좀 해주실 수 있겠습니까? 나는'? Map'을 검색했지만 나에게 명확하지 않습니다. – ABC

+0

예. '? Map' 의사는 다음과 같이 말합니다 : "'Map'은 결과를 단순화하려고하지 않는'mapply'에 대한 간단한 래퍼입니다." 'mapply'에 익숙하지 않다면, doc을보십시오. – flodel

+0

고맙습니다. – ABC

3
set1 <- data.frame(A=c(23,34,13,11),B=c(12,81,45,23)) 
set2 <- data.frame(A=c(.34,.5,.4),B=c(1.1,2,1.8)) 
set3 <- data.frame(A=c(-23,-3,.8,-.6,4),B=c(5,.1,-2.3,1.4,3.2)) 

Type=rep(c(1,2,3), times=c(nrow(set1), nrow(set2), nrow(set3))) 
dat123 <- cbind(rbind(set1,set2,set3), Type)