R中基于条件的行值操作

R中基于条件的行值操作,r,R,下面是我的数据框 dataframe <- data.frame( A = c(0, 13.4375, 13.625, 16.6875, 16.6875), B = c(0, 0, 0, 1, 1), c = c(3, 9, 63, 52, 98) ) #dataframe #A B c #0 0 3 #13.4375 0 9

下面是我的数据框

dataframe <-
  data.frame(
    A = c(0, 13.4375, 13.625, 16.6875, 16.6875),
    B = c(0, 0, 0, 1, 1),
    c = c(3, 9, 63, 52, 98)
  )

#dataframe
    #A             B      c    
    #0            0       3  
    #13.4375      0       9  
    #13.625       0       63  
    #16.6875      +1      52  
    #16.6875      +1      98  
    #..           ..      .. 

根据所示的示例,我们将“B”与“C”列相乘,以将“B”中为0的值替换为0

df1$C <- df1$B*df1$C
df1$C就是这个吗

dataframe = data.frame(A = c(1,2,3,4), 
                       B = c(1,0,0,1), 
                       C = c(0,0,0,1))

w <- 3
dataframe$C[1:w] <- ifelse(dataframe$B[1:w] == 0, 0, dataframe$B[1:w])
dataframe=data.frame(A=c(1,2,3,4),
B=c(1,0,0,1),
C=C(0,0,0,1))

w是否总是固定长度?@不,它将是一个变量。这将替换
c
的所有值,但我只想更改
w
中声明的行数。塔雷瓦更新了帖子
df1$C[1:3] <- df1$B[1:3]*df1$C[1:3]
w <- 3
i1 <- (seq_len(nrow(df1)) %in%  seq_len(w)) & df1$B ==0
df1$C <- df1$C * !i1
dataframe = data.frame(A = c(1,2,3,4), 
                       B = c(1,0,0,1), 
                       C = c(0,0,0,1))

w <- 3
dataframe$C[1:w] <- ifelse(dataframe$B[1:w] == 0, 0, dataframe$B[1:w])