我想在R中生成一个由4列组成的数据框,例如
V1 V2 V3 V4
10 10 9 9
10 10 8 9
10 10 7 9
10 10 6 9
10 10 5 9
9 9 8 8
9 9 7 8
9 9 6 8
9 9 5 8
9 9 4 8
9 9 3 8
8 8 7 7
依次类推,直到v1和v2比开始时少8(或某个整数)。同样,在v3比v1小5(或再次为任意整数)后,v1和v2减少1。
答案 0 :(得分:1)
您可以尝试tidyverse
首先,您必须为列V1
values = 10:8
n=5:7
然后创建其余的
library(tidyverse)
tibble(V1 = rep(values, n)) %>%
arrange(-V1) %>%
mutate(V2 = V1) %>%
group_by(V1) %>%
mutate(V3 =(max(V2)-1):(max(V2)-n()),
V4 = max(V2)-1) %>%
ungroup()
# A tibble: 18 x 4
V1 V2 V3 V4
<int> <int> <int> <dbl>
1 10 10 9 9
2 10 10 8 9
3 10 10 7 9
4 10 10 6 9
5 10 10 5 9
6 9 9 8 8
7 9 9 7 8
8 9 9 6 8
9 9 9 5 8
10 9 9 4 8
11 9 9 3 8
12 8 8 7 7
13 8 8 6 7
14 8 8 5 7
15 8 8 4 7
16 8 8 3 7
17 8 8 2 7
18 8 8 1 7