2014-12-23 3 views
1

저는 R을 처음 접했고 아마도 매우 기본적인 질문을 가지고 있습니다. 그러나이 작업을 무엇이라고 부를지 모르겠다. . " n 행에 대한 등등R : 가로로 데이터 프레임의 "collapsing"열

x <- data.frame(matrix(0, 10, 10)) 
x[1, 1:5] <- 1 
x[3,6:10] <- 2 
x[5,6:10] <- 3 
x[6,6:10] <- 4 
x[8, 1:5] <- 5 

을 ... 그리고 다음과 같이 나는 많은 열이있는 데이터 프레임을 가지고있다. 그래서 첫 번째 (10)는 다음과 같다 :

X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 
1 1 1 1 1 1 0 0 0 0 0 
2 0 0 0 0 0 0 0 0 0 0 
3 0 0 0 0 0 2 2 2 2 2 
4 0 0 0 0 0 0 0 0 0 0 
5 0 0 0 0 0 3 3 3 3 3 
6 0 0 0 0 0 4 4 4 4 4 
7 0 0 0 0 0 0 0 0 0 0 
8 5 5 5 5 5 0 0 0 0 0 
9 0 0 0 0 0 0 0 0 0 0 
10 0 0 0 0 0 0 0 0 0 0 
나는 다음과 같이 내가 데이터 프레임을 가질 수 있도록, 수평 열 X6:X11을 이동하고 싶습니다

:

X1 X2 X3 X4 X5 
1 1 1 1 1 1 
2 0 0 0 0 0 
3 2 2 2 2 2 
4 0 0 0 0 0 
5 3 3 3 3 3 
6 4 4 4 4 4 
7 0 0 0 0 0 
8 5 5 5 5 5 
9 0 0 0 0 0 
10 0 0 0 0 0 

을 ..하지만 방법에 붙어 이것을 효율적으로 수행하는 방법에 대해 알아보십시오. 이것에 대한 R 초심자를위한 어떤 도움든지 대단히 평가됩니다.

감사합니다.

+3

행렬로 계속 처리한다면 :'x ​​[, 1 : 5] + x [, 6 : 10]'은 당신이 원하는 것을 줄 것입니다. – Frank

+0

고마워요,이 트릭을 않습니다! 데이터 프레임에 머물고 싶다면 세련된 솔루션이 있습니까 (예 : d/plyr 또는 다른 패키지/메소드를 사용하여 배울 가치가있는)? –

+0

@Percival Frank의 답변은 여전히 ​​데이터 프레임입니다. 'class (x [, 1 : 5] + x [, 6 : 10])'를 확인하십시오. –

답변

2

행하기 만하면 행렬을 취급하는 방식으로 x을 계속 취급하십시오. 원하는 결과를 얻으실 수 있습니다 :

x[,1:5] + x[,6:10] 

data.frame.

관련 문제