例如,我有一个具有两列的数据帧
Name|Job
Dave 1
Matt 1
Jes 3
Chris 1
Jen 4
Cal 2
我想要这个脚本使这个结果
Name|Job|type
Dave 1 type 1
Matt 1 type 1
Jes 3 type 2
Chris 1 type 2
Jen 4 type 3
Cal 2 type 3
rep(…, each = 2L)
为每个向量创建两个元素。
seq_len(nrow(df) %/% 2L)
创建一个数字为1、2、…、n的向量,其中n是类的数量。
把它放在一起:
df$type = paste('type', rep(seq_len(nrow(df) %/% 2L), each = 2L))
另一种可能更典型的生成类的方法是通过cut
函数(尽管在这种情况下它是更多的代码(:
n_types = 3L
types = cut(seq_len(nrow(df)), n_types, labels = seq_len(n_types))
df$type = paste('type', types)
您也可以尝试:
#Code
df$type <- paste0('type',sort(rep(c(1:(nrow(df)/2)),2)))
输出:
df
Name Job type
1 Dave 1 type1
2 Matt 1 type1
3 Jes 3 type2
4 Chris 1 type2
5 Jen 4 type3
6 Cal 2 type3