내 dataframe
에는 Balance
, Balance1
, Balance2
, ..., Balance36
의 미결제 잔액이 있습니다. Balance1
data.frame에서 차이점 또는 델타 열을 어떻게 동적으로 생성합니까?
방법은 아래의 방법으로 단순화 할 수 있습니다 -
나는 Balance2
은 = 매달 사이의 델타, 즉 Delta2
에 대한 열을 추가합니다.
dataset$delta1 = apply(dataset[, c("Balance1","Balance")], 1, function(x){x[2]-x[1]})
dataset$delta2 = apply(dataset[, c("Balance2","Balance1")], 1, function(x){x[2]-x[1]})
...
dataset$delta35 = apply(dataset[, c("Balance35","Balance34")], 1, function(x){x[2]-x[1]})
dataset$delta36 = apply(dataset[, c("Balance36","Balance35")], 1, function(x){x[2]-x[1]})
"델타"열 이름이 이미 없으면 먼저 만들거나 동일한 한 줄의 코드에서 dynmaically 할 수 있습니다. 즉 원래의 df에는 델타 열이 아닌 월간 잔액 열이 포함됩니다. – Adam
@Adam : cols가 존재하지 않는다면, 예를 들어'df [, c ("delta1", ..., "delta36")] <- ...'를 동시에 할당하면서 생성 할 수 있습니다. 이는 인덱스가 아닌 column-name별로 존재하지 않는 열을 참조 할 때 작동합니다. 또는 숫자로 된 열 - 색인을 사용하여 df를 생성하는 것이 더 쉬울 수도 있습니다. 마지막에 항상'colnames (df) '를 지정할 수 있습니다. – smci