我在数据框中有一个地震震级的向量,比如说
Mag <- c(3, 3.4, 3.6, 3.7, 3.8, 5, 4, 3.5)如何使用for循环和elseif函数将它们放入组3-3.5、3.5-4、4+
## Query2020 is the dataframe I'm using.
query2020$magVar <- NULL
for (i in 1:length(query2020$mag)) {
if (query2020$mag[i] < 3.5) {
query2020$magVar <- 1
}
else if (query2020$mag[i] > 3.50 & query2020$mag[i] < 4.00) {
query2020$magVar <- 2
else {
query2020$magVar <- 3
}
}我做了一些类似的事情,但是我的新变量MagVar包含所有的3。
发布于 2021-10-16 23:27:36
函数cut()可以很容易地处理这个问题:
breaks <- seq(2.5, 5, by=.5)
Mag.grp <- cut(Mag, breaks)
Mag.tbl <- table(Mag.grp)
Mag.tbl
Mag.grp
# (2.5,3] (3,3.5] (3.5,4] (4,4.5] (4.5,5]
# 1 2 4 0 1 正如?cut的手册页面所指出的那样,(2.5,3]表示大于2.5且小于或等于3。
https://stackoverflow.com/questions/69600185
复制相似问题