簡體   English   中英

在列表中查找所有大於指定值的值

[英]Find all values in a list that are greater than a specified value

我試圖使用R來計算列表中大於某個值的元素的數量,並將該數量存儲在變量T

但是,我收到以下錯誤

錯誤:(列表)對象無法強制鍵入“ double””。運行代碼的第一部分后,我正在尋找所有hist_lst> 3的所有值的總和

當我運行下面的代碼

A <- c(1, 1, 2,3,2,4,5,3,2,1,7)
value <- 5

# incrementations
out_lst <- lapply(A, function(x) x : 5)

hist_lst <- list()
max_len <- max(sapply(out_lst, function(x) length(x)))

for(l in 1:max_len) {
    hist_lst[[l]] <- sapply(out_lst, function(x) x[l])
    hist(hist_lst[[l]])
}

for(l in 1:length(hist_lst)) {
    for(i in 1:length(hist_lst[i])) {
        T[l] = sum(hist_lst[i] > 3)
    }
}

您需要在以下位置加上雙括號:

 T[l] = sum(hist_lst[[i]] > 3)

但是如果我了解您想要的內容,則可以將最后一個雙循環替換為

T=unlist(lapply(hist_lst,function(x) sum(x>3,na.rm=T)))

> T
[1] 3 4 6 6 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM