2015-01-27 2 views
1

나는 내 인생이 rbind 함수를 이해할 수 없다. 여기에있는 예제를 사용하여 시도했지만, 내가 잘못하고있는 것을 파악할 수는 없습니다. 내가하고 싶은 것은 첫 번째 데이터 프레임 아래 두 번째 데이터 프레임의 데이터를 추가하는 것입니다.초심자 rbind 함수

rbind는 열 이름이 같거나 ... 필요합니까?

ParticipantA=c("A","B","C","D") 
Score1A=c("21","20","21","21") 
Score2A=c("32","40","32","31") 
Score3A=c("47","50","43","46") 
BlockA=data.frame(ParticipantA,Score1A,Score2A,Score3A) 
BlockA$Major=c("Computer_Science","Computer_Science","Computer_Science","Computer_Science") 
BlockA$Gender=c("Female","Female","Male","Male") 
ParticipantB=c("E","F","G","H") 
Score1B=c("28","28","21","22") 
Score2B=c("30","36","37","32") 
Score3B=c("41","49","49","46") 
BlockB=data.frame(ParticipantB,Score1B,Score2B,Score3B) 
BlockB$Major=c("Medical","Medical","Medical","Medical") 
BlockB$Gender=c("Female","Female","Male","Male") 

답변

1

rbind는 모든 열의 이름과 클래스가 같아야합니다.

0

문제는 열 제목에 있습니다. rbind은 열 제목을 사용하여 행을 바인딩하는 방법을 지정합니다. 열은 다른 순서로있을 수 있습니다. R은 열 순서를 결정하기 위해 첫 번째 요소 만 사용합니다.

또는 값이 "A"또는 "B"인 데이터 프레임에 다른 열을 추가하면 열 이름에 "A"와 "B"를 넣지 않고 정보를 유지할 수 있습니다. < - 그 이유는 rbind을 사용할 수 없습니다. 추가 열을 사용하면 R에서 더 많은 분석을 수행 할 수 있습니다 (예 : 회귀 및 기타 선형 모델.

final_colnames <- c("Block", "Participant", "Score1", "Score2", "Score3") 

새로운 목록을 만드 데이터 프레임 "BlockA"와 "BlockB"에 사용할 수있는 열 이름의 균일 한 세트를 작성 : 여기

는 데이터를 처리 할 수있는 하나의 방법입니다 참가자가 속한 블록을 식별합니다.

BlockA = c("A", "A", "A", "A") 

이전 데이터

ParticipantA = c("A", "B", "C", "D") 
Score1A = c("21", "20", "21", "21") 
Score2A = c("32", "40", "32", "31") 
Score3A = c("47", "50", "43", "46") 

레이블 "BlockA는"새로운 데이터 프레임의 이름을 여기 재활용,하지만 "A"의 "BlockA"열 목록 "A"를 "추가하기 전에한다 A ""A ".

BlockA = data.frame(BlockA, ParticipantA, Score1A, Score2A, Score3A) 

이 시점에서 새 열 이름을 추가해야 이름 수와 열 수가 같아야합니다.

colnames(BlockA) <- final_colnames 

이제
BlockA$Major = c("Computer_Science", "Computer_Science", "Computer_Science", "Computer_Science") 
BlockA$Gender = c("Female", "Female", "Male", "Male") 

BlockB이

BlockB = c("B", "B", "B", "B")    # the extra column 
ParticipantB = c("E", "F", "G", "H") 
Score1B = c("28", "28", "21", "22") 
Score2B = c("30", "36", "37", "32") 
Score3B = c("41", "49", "49", "46") 
BlockB = data.frame(BlockB, ParticipantB, Score1B, Score2B, Score3B) 
colnames(BlockB) <- final_colnames   # renaming the columns 
BlockB$Major = c("Medical", "Medical", "Medical", "Medical") 
BlockB$Gender = c("Female", "Female", "Male", "Male") 

균일 한 열 이름이 rbind 지금 작동한다는 것을 의미 같은 과정입니다 나머지 열

을 추가 할 수 있습니다.

rbind(BlockA,BlockB)