运行 我的多个向量的多变量函数?

Running my multivariable function for several vectors?

我有以下包含 6 列和数千行的数据框。

示例: Screenshot of example data

每列代表不同的时间点 0、1、3、6、9、12。我想计算每行值的曲线下面积。 例如,对于第 1 行,我将使用 DescTools 包中的以下函数

x=c(0,1,3,6,9,12)

y=c(130, 125, 120, 115, 108, 115)

AUC(x, y, method = c("linear"), na.rm=FALSE) 

有没有办法创建一个新变量,即我的数据框中每一行的 AUC?

谢谢!

我们可以使用 applyMARGIN = 1 来按行进行

library(DescTools)
i1 <- rowSums(!is.na(df1)) >2
df1$AUC[i1] <- apply(df1[i1,], 1, FUN = function(y) 
        AUC(x, y, method = "linear", na.rm = FALSE))
df1$AUC[i1]
[1] 1394 1518

日期

df1 <- structure(list(col1 = c(130, 140), col2 = c(125, 137), col3 = c(120, 
125), col4 = c(115, 120), col5 = c(108, 125), col6 = c(115, 130
)), class = "data.frame", row.names = c(NA, -2L))
x <- c(0,1,3,6,9,12)