tutorial - table in r




R data.table 열을 인수로 사용하는 행에 함수 적용 (2)

가장 좋은 방법은 벡터화 된 함수를 작성하는 것입니다. 그러나 그렇게 할 수 없다면 아마도 다음과 같이 할 것입니다.

x[, func.text(f1, f2), by = seq_len(nrow(x))]

나는 다음과 같은 data.table 가지고있다.

x = structure(list(f1 = 1:3, f2 = 3:5), .Names = c("f1", "f2"), row.names = c(NA, -3L), class = c("data.table", "data.frame"))

data.table 각 행에 함수를 적용하고 data.table . func.test 함수는 args f1f2 하고 그것으로 무언가를하고 계산 된 값을 반환합니다. 가정 (예로서)

func.text <- function(arg1,arg2){ return(arg1 + exp(arg2))}

내 실제 함수는 더 복잡하고 루프와 모든 것을 수행하지만 계산 된 값을 반환합니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?


내가 발견 한 가장 우아한 방법은 mapply .

x[, value := mapply(func.text, f1, f2)]
x
#    f1 f2    value
# 1:  1  3 21.08554
# 2:  2  4 56.59815
# 3:  3  5 151.4132




mapply