在 R 中创建一个使用引用其他列的方程式的新列
Creating a new column in R that uses an equation referencing other columns
您好,我正在尝试在名为“Erie”的数据集中创建一个名为“pCO2”的新列。我的数据集目前有 ph、alk 和 temp 值。有一个名为 AquaEnv 的软件包,如果您有 pH 值和碱度值,它可以让您预测 CO2 值。
这是在“pCO2 列”中找到我想要的值的方程式
ae<-aquaenv(S=0,t=0,p=0, SumCO2 = NULL, pH= 7.7,TA=90 )
ae$SumCO2
在我的 Erie 数据集中引用相应的 pH 值和碱度值时,有没有办法做到这一点?
这是我的想法,但它没有给出正确的值。
Erie$pCO2<-aquaenv(S=0,t=0,p=0, SumCO2 = NULL, pH=Erie$pH,TA=
Erie$ALKALINITY..mg.L.)
谢谢!
这是一个令人惊讶的常见问题,没有真正好的答案。
让它工作的最快方法是:
df$SumCO2 <- sapply(
split(Erie, 1:nrow(Erie)),
function(r) {
return(aquaenv(S=0,t=0,p=0,SumCO2=NULL, pH=r$pH, TA=r$ALKALINITY..mg.L.)$SumCO2)
}
)
为了遍历它,这会将 Erie
data.frame 分成一组 data.frame(每行一个),并为每一行调用此函数。
mapply
方法稍微简洁一些:
mapply(
function(pH, TA) {
return(aquaenv(S=0,t=0,p=0,SumCO2=NULL, pH=pH, TA=TA)$SumCO2)
}, Erie$pH, Erie$ALKALINITY..mg.L
)
一些与其他方法类似的问题:
- Call apply-like function on each row of dataframe with multiple arguments from each row
您好,我正在尝试在名为“Erie”的数据集中创建一个名为“pCO2”的新列。我的数据集目前有 ph、alk 和 temp 值。有一个名为 AquaEnv 的软件包,如果您有 pH 值和碱度值,它可以让您预测 CO2 值。
这是在“pCO2 列”中找到我想要的值的方程式
ae<-aquaenv(S=0,t=0,p=0, SumCO2 = NULL, pH= 7.7,TA=90 )
ae$SumCO2
在我的 Erie 数据集中引用相应的 pH 值和碱度值时,有没有办法做到这一点?
这是我的想法,但它没有给出正确的值。
Erie$pCO2<-aquaenv(S=0,t=0,p=0, SumCO2 = NULL, pH=Erie$pH,TA=
Erie$ALKALINITY..mg.L.)
谢谢!
这是一个令人惊讶的常见问题,没有真正好的答案。
让它工作的最快方法是:
df$SumCO2 <- sapply(
split(Erie, 1:nrow(Erie)),
function(r) {
return(aquaenv(S=0,t=0,p=0,SumCO2=NULL, pH=r$pH, TA=r$ALKALINITY..mg.L.)$SumCO2)
}
)
为了遍历它,这会将 Erie
data.frame 分成一组 data.frame(每行一个),并为每一行调用此函数。
mapply
方法稍微简洁一些:
mapply(
function(pH, TA) {
return(aquaenv(S=0,t=0,p=0,SumCO2=NULL, pH=pH, TA=TA)$SumCO2)
}, Erie$pH, Erie$ALKALINITY..mg.L
)
一些与其他方法类似的问题:
- Call apply-like function on each row of dataframe with multiple arguments from each row