gpt4 book ai didi

r - 计算 R 中每列高于阈值范围的值的数量

转载 作者:行者123 更新时间:2023-12-05 04:53:19 24 4
gpt4 key购买 nike

如何计算每列高于一系列阈值的值的数量?

即:为每一列计算值超过 100、然后超过 150、然后超过...的数量并将结果存储在数据框中?

# Reproductible data
# (Original data is daily streamflow values organized in columns per year)

set.seed(1234)
data = data.frame("1915" = runif(365, min = 60, max = 400),
"1916" = runif(365, min = 60, max = 400),
"1917" = runif(365, min = 60, max = 400))

# my code chunck

mymin = 75
mymax = 400
my step = 25

apply(data, 2, function (x) {
for(i in seq(mymin,mymax,mystep)) {
res = (sum(x > i)) # or nrow(data[x > i,])
return(res)
}
})

此代码对于一次迭代运行良好,但我无法将每次迭代的结果存储在数据框中。

我也尝试过以下方法:

for (i in 1:n){
seuil = seq(mymin, mymax, my step)
lapply(data, function(x) {
res [[i]] = nrow(data[ x > seuil[i], ])
return(res)}
})

哪个不是很好...

输出会是这样的:

<表类="s-表"><头><第>年n 值大于 75n 个值大于 100n 值高于...<正文>1915348329...1916351325...............

感谢您的意见和建议:)

最佳答案

你可以试试:

vals <- seq(mymin,mymax,mystep)
mat <- sapply(vals, function(x) sapply(data, function(y) sum(y > x)))
colnames(mat) <- paste0('values_above_', vals)
mat

# values_above_75 values_above_100 values_above_125 values_above_150 values_above_175
#X1915 348 329 303 276 235
#X1916 351 325 305 277 252
#X1917 345 315 291 260 236

# values_above_200 values_above_225 values_above_250 values_above_275 values_above_300
#X1915 212 186 153 126 104
#X1916 226 204 181 146 118
#X1917 208 186 161 133 99

# values_above_325 values_above_350 values_above_375 values_above_400
#X1915 74 49 28 0
#X1916 92 62 40 0
#X1917 81 60 34 0

关于r - 计算 R 中每列高于阈值范围的值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66130168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com