如何将 less/equal 行中的值加到最后一个值(对于多行)?
How to sum values in a row that are less/equal to the last value (for multiple rows)?
我正在尝试计算 2021 年相对于 June/July/August 平均温度的 1981-2021 年气候学的百分位排名。我的数据如下所示,但更大:
1981
1982
1983
2021
22
34
40
42
25
36
32
33
对于每一行,我需要计算低于或等于 2021 年值的值的数量。因此,对于第一行,它将是三个,因为所有值都小于 42,而第二行将等于 2。
我已经编写了一些代码来尝试执行此操作,但我遇到的问题是让函数为每一行使用 2021 值,而不仅仅是一个值。
L = <- apply(Temperature_df[,(3:50)],1,function(x)
{
sum(x <= Temperature_df[,50]) #50 is the 50th column which is always 2021
})
# the function works if I compare each row to one value of 2021:
sum(x <= Temperature_df[1,50]), but I need to sum the values of
each row against the 2021 value for that row.
如有任何想法,我们将不胜感激。
一个简单的rowSums
就可以了。注意2021列的提取方式,用double [[
.
Temperature_df <- read.table(text = "
1981 1982 1983 2021
22 34 40 42
25 36 32 33
", header = TRUE, check.names = FALSE)
col2021 <- 4
Temperature_df[-col2021] <= Temperature_df[[col2021]]
#> 1981 1982 1983
#> [1,] TRUE TRUE TRUE
#> [2,] TRUE FALSE TRUE
rowSums(Temperature_df[-col2021] <= Temperature_df[[col2021]])
#> [1] 3 2
由 reprex package (v2.0.1)
于 2022-03-18 创建
我正在尝试计算 2021 年相对于 June/July/August 平均温度的 1981-2021 年气候学的百分位排名。我的数据如下所示,但更大:
1981 | 1982 | 1983 | 2021 |
---|---|---|---|
22 | 34 | 40 | 42 |
25 | 36 | 32 | 33 |
对于每一行,我需要计算低于或等于 2021 年值的值的数量。因此,对于第一行,它将是三个,因为所有值都小于 42,而第二行将等于 2。
我已经编写了一些代码来尝试执行此操作,但我遇到的问题是让函数为每一行使用 2021 值,而不仅仅是一个值。
L = <- apply(Temperature_df[,(3:50)],1,function(x)
{
sum(x <= Temperature_df[,50]) #50 is the 50th column which is always 2021
})
# the function works if I compare each row to one value of 2021:
sum(x <= Temperature_df[1,50]), but I need to sum the values of
each row against the 2021 value for that row.
如有任何想法,我们将不胜感激。
一个简单的rowSums
就可以了。注意2021列的提取方式,用double [[
.
Temperature_df <- read.table(text = "
1981 1982 1983 2021
22 34 40 42
25 36 32 33
", header = TRUE, check.names = FALSE)
col2021 <- 4
Temperature_df[-col2021] <= Temperature_df[[col2021]]
#> 1981 1982 1983
#> [1,] TRUE TRUE TRUE
#> [2,] TRUE FALSE TRUE
rowSums(Temperature_df[-col2021] <= Temperature_df[[col2021]])
#> [1] 3 2
由 reprex package (v2.0.1)
于 2022-03-18 创建