![](/img/trans.png)
[英]In R, how to replace values in a column with values of another column of another data set based on a condition?
[英]R: How to set values in empty column based on condition of another column?
我正在嘗試編寫一個函數,該函數將檢查向量中的每個值是否大於某個值,然后將不同的空列初始化為 1 或 0。如果該值大於設置的參數,則空列的相同索引將設置為 1。否則,如果它不大於該數字,它將設置為 0。所以我的函數將接受一個值,包含概率的列,然后是另一個空列稍后將被制成一列 1 和 0。
運行該函數時我沒有收到任何錯誤,但是該空列沒有得到更新。
我覺得我的邏輯是正確的,但顯然有些東西不起作用。
cut_off_prob <- function(x, prob, pred_class) {
for (i in 1:length(prob))
{
if(prob[i] > x)
{
pred_class[i] <- 1
}
else {
pred_class[i] <- 0
}
}
}
不需要pred_class
作為函數參數。 嘗試這個:
cut_off_prob <- function(x, prob) {
pred_class <- c() # initialize as an empty vector
for (i in 1:length(prob)){
if(prob[i] > x){pred_class[i] <- 1}
else {pred_class[i] <- 0}
}
return(pred_class)
}
另一方面,我強烈建議您不要在這種情況下使用 for 循環,因為正如@Gregor Thomas 所說,它的效率非常低。 相比之下,請檢查:
pred_class <- rep(0,length(prob));
pred_class[prob>x] <- 1
此處顯示運行時間(以秒為單位):
"Loop Time: 0.0029909610748291 Conditional Indexing Time: 0.000996828079223633"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.