运行 我的多个向量的多变量函数?
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?
谢谢!
我们可以使用 apply
和 MARGIN = 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)
我有以下包含 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?
谢谢!
我们可以使用 apply
和 MARGIN = 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)