※ 引述《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))