假设我有这样的数据
<表类>
数量ID tbody><<tr>1.5 X 2.4X 3.1Y 3.2Y 表类>
我们可以用cut
创建一个列,然后使用pivot_wider
从'长'重塑为'宽'格式
library(dplyr)
library(tidyr)
df1 %>%
mutate(grp = cut(Number, breaks = c(1, 2, 3, 4),
labels = c("1<x<2", "2<x<3", "3<x<4"))) %>%
pivot_wider(names_from = grp, values_from= Number,
values_fn = length, values_fill = 0)
与产出
# A tibble: 2 × 4
ID `1<x<2` `2<x<3` `3<x<4`
<chr> <int> <int> <int>
1 X 1 1 0
2 Y 0 0 2
数据df1 <- structure(list(Number = c(1.5, 2.4, 3.1, 3.2), ID = c("X", "X",
"Y", "Y")), class = "data.frame", row.names = c(NA, -4L))