r语言 - 根据每两行分配一个条件列,其中包含文本"type"和后续数字



例如,我有一个具有两列的数据帧

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

相关内容

  • 没有找到相关文章

最新更新