2017-12-27 49 views
0

첫 번째 행은 N 개의 열에 대해 아래 행을 추가하는 데 대한 참조 값입니다.첫 번째 행을 참조로 유지하는 데이터 프레임의 계산

데이터

A B C D 
3 5 1 2 

1 4 5 3 
2 2 2 4 
3 1 3 1 
4 3 1 2 

계산은 다음과 같이

  • 3과 마찬가지로 참조 3 1, 2, 3에 추가되어야하다 첨가 값, 4, 5 4,2,1,3에 추가 된 참조 값이고 1은 5,2,3,1에 추가 된 참조 값이므로 ... n 열까지.

    1 + 3 4 + 5 5 + 1 3 + 2 
    2 + 3 2 + 5 2 + 1 4 + 2 
    3 + 3 1 + 5 3 + 1 1 + 2 
    4 + 3 3 + 5 1 + 1 2 + 2 
    

예상 출력 :

A B C D 
4 9 6 5 
5 7 3 6 
6 6 4 3 
7 8 2 4 

이 도와주세요. 감사.

답변

5

어쩌면 그냥이 :

c(mydf[1, ]) + mydf[-1, ] 
## A B C D 
## 2 4 9 6 5 
## 3 5 7 3 6 
## 4 6 6 4 3 
## 5 7 8 2 4 

data.frame 시작 : 당신은 당신의 초기 dataframe의 값을 교체하려는 경우

mydf <- structure(list(A = c(3L, 1L, 2L, 3L, 4L), B = c(5L, 4L, 2L, 1L, 
    3L), C = c(1L, 5L, 2L, 3L, 1L), D = c(2L, 3L, 4L, 1L, 2L)), .Names = c("A", 
    "B", "C", "D"), row.names = c(NA, 5L), class = "data.frame") 
+0

C가 실제로 의미하는 바를 설명해 주시겠습니까 – Pradnya

+0

@pradnya, 단지'data.frame' 부분을 제거하여'list'를 남겨 둡니다. – A5C1D2H2I1M1N2O1R2T1

+0

@pradnya,'mydf [-1,] + list (3, 5, 1, 2)'로 생각하십시오. – A5C1D2H2I1M1N2O1R2T1

2

우리는

(df1[1,][col(df1)] + df1)[-1,] 
# A B C D 
#2 4 9 6 5 
#3 5 7 3 6 
#4 6 6 4 3 
#5 7 8 2 4 
0

을 수행 할 수 있습니다 n과 EW 값은 다음을 수행 할 수 있습니다 :

df <- data.frame(c(3,1,2,3,4), c(5,4,2,1,3), c(1,5,2,3,1), c(2,3,4,1,2)) 
names(df) <- c("A", "B", "C", "D") 

for (i in 2:nrow(df)) { 
    for (j in 1:ncol(df)) { 
    df[i,j] <- df[1,j] + df[i,j] 
    } 
} 

이것은 아마도 벡터화하고 빨리 당신이 매우 큰 dataframe이있는 경우 도움이 될 것이다 실행,하지만 당신은 신속하고 더러운 솔루션을 필요로하는 경우가 작동 할 수있다.

출력 :

A B C D 
1 3 5 1 2 
2 4 9 6 5 
3 5 7 3 6 
4 6 6 4 3 
5 7 8 2 4 

희망이 도움이됩니다!