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 f1
과 f2
하고 그것으로 무언가를하고 계산 된 값을 반환합니다. 가정 (예로서)
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