2016-11-04 2 views
1

에 열 방향교체 값은 ... 나는 다음과 같이 봐 dataframe이 R

V1 | V2 | V3 | V4 
1 | NA | 2 | 5 
NA | 2 | NA | NA 
1 | 1 | 1 | 1 
나는, 헤더와 함께 다음에 dataframe를 변환하고 싶습니다

...

V1 | NA | V3 | V4 
V2 | NA | NA | NA 
V1 | V2 | V3 | V4 

즉, 각 셀에 머리글 이름이 한 칸씩 표시되도록하고 싶습니다.

데이터

dd <- read.table(header = TRUE, strip.white = TRUE, sep = '|', 
       text = "V1 | V2 | V3 | V4 
       1 | NA | 2 | 5 
       NA | 2 | NA | NA 
       1 | 1 | 1 | 1") 
+3

어떻게 처음 두 개의 열을 얻고 있습니까? 그것들이 실수라면, 나는 dd [] colnames (dd) [col (dd) * !! dd]' – rawr

답변

1

귀하의 예상 출력은 나에게 이상한 것 같다하지만 난 잘 이해한다면, 당신은 열 이름이 아닌 모든 NA를 교체하려면?

df[!is.na(df)] <- rep(names(df), each=nrow(df))[!is.na(df)] 

이 데이터를 주어진 :

당신은 다음과 같이 할 수

df=data.frame(V1=c(1, NA, 1), V2=c(NA, 2, 1), V3=c(2, NA, 1), V4=c(5, NA, 1)) 

헤더를 제거하는 당신의 소원에 관한, 그건 data.frame에서 불가능합니다. 원하는 경우 문자 행렬로 변환하고 dimnames 속성을 삭제할 수 있습니다.

df2 = as.matrix(df); attributes(df2)$dimnames<-NULL