※ 引述《amygm307 (简单点ˇ)》之铭言:
: 判断B栏值为0的那一列,为整笔资料的第一列
: 变成
: A B
: 1 1 0
: 2 1 5
: 3 3 na
: 因为我每笔资料B为0的位置都不一样
: 目前想到的作法是用if去判断df$B==0时回传该值为第几列
: 然后再删掉前面资料df[-i,]
: 但是我不知道"回传第几列"应该怎么写
: 拜托各位大大帮帮小妹ˊˋ
: 一直找不到有用的解法
1.
library(data.table)
dt <- data.table(A = c(1,1,1,1,1,3), B = c(3,1,2,0,5,NA))
dt[ , rn := .I][rn >= which(B == 0)]
2.
library(dplyr)
df <- data.frame(A = c(1,1,1,1,1,3), B = c(3,1,2,0,5,NA))
df %>>% mutate(rn = 1:nrow(.)) %>>% filter(rn >= which(B == 0))