对特定行R重复编号的新列

我有一个data.frame,我想添加一个新列,对特定行重复1。

b <- data.frame(var1 = c(9.2, 3.5,5.5,8,3), var2 = 1:5,row.names = c("a","b","c","d","e"))
b$new_col <- rep("1",b[1:3,])

Error in rep("1", b[1:3, ]) : invalid 'times' argument

我要b看起来像这样

 var1 var2 new_col
a  9.2    1       1
b  3.5    2       1
c  5.5    3       1
d  8.0    4       0
e  3.0    5       0

我怎样才能做到这一点?

编辑:在我真正的问题。我想在特定的行中添加几列,其中包含1。像那样

 var1 var2 new_col new_col2
a  9.2    1       1        0
b  3.5    2       1        0
c  5.5    3       1        0
d  8.0    4       0        1
e  3.0    5       0        1
f  2.0    6       0        0
g  3.0    7       0        0
h  5.0    8       0        0
评论
  • 没人疼?
    没人疼? 回复

    你可以做:

    b$new_col <- as.numeric(1:nrow(b) < 4)
    
      var1 var2 new_col
    a  9.2    1       1
    b  3.5    2       1
    c  5.5    3       1
    d  8.0    4       0
    e  3.0    5       0