【发布时间】:2020-11-11 14:49:17
【问题描述】:
我的数据集有 575 行和 368 列,如下所示:
NUTS3_2016 URAU_CODE FUA_CODE X2018.01.01.x X2018.01.02.x X2018.01.03.x ...
1 AT130 AT001C1 AT001L3 0.46369280 0.3582241 0.2777274 ...
2 AT211 AT006C1 AT006L2 -0.04453125 -0.3092773 -0.3284180 ...
3 AT312 AT003C1 AT003L3 1.02993164 0.9640137 0.6413086 ...
4 AT323 AT004C1 AT004L3 1.21105239 1.4335363 1.2400620 ...
... ... .... ... ... ... .... ...
我想计算每行 x>2.5 的概率。
我还想计算每行有多少连续天 x 保持 >2.5。
你有什么建议?
非常感谢
尝试:
A <- c("a", "b", "c", "d", "e")
B <- c(1:5)
C <- c(1:5)
x <- data.frame(A,B,C)
x$prob <- rowMeans(x[-(1)]>2)
x
# A B C prob
# 1 a 1 1 0
# 2 b 2 2 0
# 3 c 3 3 1
# 4 d 4 4 1
# 5 e 5 5 1
【问题讨论】:
-
rowMeans(data[-(1:3)]>2.5) -
rowMeans不是只计算每一行的总和和均值吗? -
逻辑变量的比例被计算为均值
-
我觉得少了点什么。试试这个
A <- c("a", "b", "c", "d", "e") B <- c(1:5) C <- c(1:5) x <- data.frame(A,B,C) x$prob <- rowMeans(x[-(1)]>2)在最后三行prob应该等于1。 -
大多数编程语言中的“计数”是通过对逻辑求和来完成的。计算比例是取逻辑的平均值。请注意,Onyambu 的建议是
rowMeans( data[-(1:3)] > 2.5 ),而不是rowMeans(data[-(1:3)])。试试看!
标签: r dataframe probability