R 定义lappy函数

R 定义lappy函数,r,lapply,R,Lapply,我有一个名为df的选项卡,其中包含几个分类器的结果:准确性、净现值、Ppv等 我想在数据框中添加一个名为“点”的新列,其中包含此加权计算: Points = Accuracy* 0,20 + Specificity *0,10 + Sensitivity *0.35 + Neg Pre Value*0.10 + Pos Pred value*0.25) 我试图以这种方式使用Lappy: df$Points <- apply(df[,3:7],1,make.calc) make.cal

我有一个名为df的选项卡,其中包含几个分类器的结果:准确性、净现值、Ppv等

我想在数据框中添加一个名为“点”的新列,其中包含此加权计算:

Points = Accuracy* 0,20 + Specificity *0,10 + Sensitivity *0.35 + Neg Pre Value*0.10 + Pos Pred value*0.25)
我试图以这种方式使用Lappy:

df$Points <- apply(df[,3:7],1,make.calc)

make.calc <- function(x) {
t <- function(x) { 
df$Accuracy * 0.2 + df$Specificity * 0.1 + df$Sensitivity * 0.35 + df$Neg_Pred_Value * 0.1 + df$Pos_Pred_Value * 0.25 }
 t } 

在您提供的示例中,几乎所有变量都被分类为字符串。不幸的是,您不能对字符串执行任何计算,所以您应该首先将它们全部转换为数值变量

df <- data.frame(purrr::map_at(df, 3:7, as.numeric), stringsAsFactors = FALSE)

transform(df,Points=精度*0.20+特异性*0.1+灵敏度*0.35+负预测值*0.1+正预测值*0.25)
这不是你在R中定义函数的方式。感谢你的快速回答!!!fransform()函数不工作,因为弹出一个错误:
精度错误*0.2:二进制运算符的非数字参数
请添加一个与预期输出一起的参数,以便其他人更容易帮助您。
转换(df,Points=准确度*0.20+特异性*0.1+灵敏度*0.35+负预测值*0.1+正预测值*0.25)
这似乎适用于您的示例数据
df <- data.frame(purrr::map_at(df, 3:7, as.numeric), stringsAsFactors = FALSE)
df$Points <- df$Accuracy * 0.2 + df$Specificity * 0.1 + df$Sensitivity * 0.35 + df$Neg_Pred_Value * 0.1 + df$Pos_Pred_Value * 0.25