2013-04-13 1 views
0

문제점 :일부 데이터 세트에서 시뮬레이션과 예측을 실행 중입니다. 기본적으로 10k 배의 교차 유효성 검사를 수행 할 때 무작위로 원본 데이터의 10 %를 그립니다. , 결과를 전체 데이터 프레임에 넣을 때, 병합 할 때 1 또는 2 또는 .. 추가처럼 생깁니다.R 원본 번호 +1을 가진 중복 된 rownames +1

내 예 나쁜, 그래서 다른 게시물에서 그것을 빌려 해요 : rbind in R gives a weird rowname

> tt1[2,] 
     date close emp pred 
2 1982-03-24 112.97 -1 1 

> tt2[2,] 
     date close emp pred 
2 1982-03-25 113.21 1 1 

문제 :

> rbind(tt1[2,],tt2[2,]) 
      date close emp pred 
2 1982-03-24 112.97 -1 1 
21 1982-03-25 113.21 1 1 

내가 원하는 무엇 :

> rbind(tt1[2,],tt2[2,]) 
      date close emp pred 
2 1982-03-24 112.97 -1 1 
2 1982-03-25 113.21 1 1 

상관하고자하는 데 도움이 위대해라, 고맙다.

보다도, K

+0

질문이 변경되었습니다 ... 매튜의 답변이 작동합니다. – sashkello

+0

감사합니다. @sashkello뿐만 아니라 – user1489597

답변

2

이 예하면 원래 게시 된 데이터를 사용하고 있습니다 : (. ID 열이 rowname에 동의한다는 사실을 무시)

data_1 <- structure(list(ID = 1:3, GPA = c(3, 3.5, 4)), .Names = c("ID", 
"GPA"), class = "data.frame", row.names = c("1", "2", "3")) 
data_2 <- structure(list(ID = 3:5, GPA = c(3.1, 3.2, 3.3)), .Names = c("ID", 
"GPA"), class = "data.frame", row.names = c("3", "4", "5")) 

당신은을

캡처 할 수 있습니다 원래 행 이름 (원하는 경우 나중에 적용) :

rbind(cbind(rn=rownames(data_1), data_1), cbind(rn=rownames(data_2), data_2)) 
## rn ID GPA 
## 1 1 1 3.0 
## 2 2 2 3.5 
## 3 3 3 4.0 
## 31 3 3 3.1 
## 4 4 4 3.2 
## 5 5 5 3.3 

몇 가지 방법으로 매개 변수화 할 수 있습니다. 여기에 하나 있습니다 :

d <- list(data_1, data_2) 
do.call(rbind, lapply(d, function(x) cbind(rn=rownames(x), x))) 
## rn ID GPA 
## 1 1 1 3.0 
## 2 2 2 3.5 
## 3 3 3 4.0 
## 31 3 3 3.1 
## 4 4 4 3.2 
## 5 5 5 3.3 
+0

감사합니다. – user1489597