填入R的列

column filling in R

您好,我正在做逻辑回归练习,我有一个包含 n 行和 4 列的数据库,其中一个是理论概率,我的目标是将这些理论概率与我定义的某个值进行比较,如果概率较小我的预测概率是 0 否则它是 1 所以我发现我的数据是一个包含四个列表的列表,因此我创建了另一个空白列表,我将用预测概率填充但是我似乎有一个算法问题我尝试编写的循环你能帮帮我吗?

    library(readxl)
d<-read_excel("/home/ali/Downloads/roc.xlsx")
typeof(d)
#classification table

#le seuil que j'ai choisi de prendre 
seuil <- 0.095
pred <- c()
for(i in d$Proba_theo){
  for(j in pred){
    if(i<seuil){
       j = 0
       pred[j]=j
    }
    else{
       j = 1
       pred[j]=j
  }
}
}
pred

我认为问题可能是您在 for 循环中覆盖了 j 的值。

你可以做些什么来制作你的变量,你可以使用 mutate 而不是 for 循环。我给你举了个小例子:

library(dplyr)
df = data.frame(testVar = rnorm(100))
df %>% mutate(ifelse(testVar > 0, 1, 0))

因此在你的情况下它会是这样的:

d <- d %>% mutate(ifelse(Proba_theo >  0.095, 1, 0))

试试这个

seuil <- 0.095
pred <- rep(NA,nrow(d))
for(i in 1:nrow(d)){
  if(d$Proba_theo[i]<seuil) {
    pred[i]=0
  } else {
    pred[i]=1
  }
}
pred

或矢量化形式

pred=ifelse(d$Proba_theo<seuil,0,1)