0
您好我有一個數據幀'dat2'
行:查找data.frame模式,如果再次出現刪除-之間
CYC POS REP CTIME DTIME1 DTIME2 CUCNTS SQP SQP. STIME CTIME_mins ID
1 1 1 1 5:00.900 11.827 11.808 55069 0 0 0:00 5.01500 WSTD
2 1 2 1 50:01.781 68.202 68.192 1199 0 0 0:00 50.02968 S1
3 1 3 1 100:01.781 136.185 136.135 21 0 0 0:00 100.02968 B1
4 1 4 1 100:01.781 136.179 136.134 19 0 0 0:00 100.02968 TSG41
5 1 5 1 100:01.775 136.180 135.340 16 0 0 0:00 100.02958 TSG42
6 1 6 1 100:00.781 136.133 136.073 23 0 0 0:00 100.01302 TSG43
7 1 7 1 100:01.781 136.200 136.146 93 0 0 0:00 100.02968 TSG44
8 1 8 1 100:01.781 136.186 135.358 161 0 0 0:00 100.02968 TSG45
9 1 9 1 50:01.781 68.217 68.201 1273 0 0 0:00 50.02968 S2
10 1 10 1 100:01.780 136.178 136.137 15 0 0 0:00 100.02967 B2
11 1 21 1 0:25.899 0.596 0.593 1 0 0 0:00 0.43165 TSG46
12 1 1 1 5:00.900 11.846 11.826 57932 0 0 0:00 5.01500 WSTD
13 1 2 1 50:01.719 68.379 68.347 1091 0 0 0:00 50.02865 S1
該數據幀有13行(可以是不同的長度,但無所謂)。我首先需要檢查前3列'CYC'
'POS'
'REP'
:模式是'CYC == 1 && POS == 1 && REP == 1'
首先檢查表格中是否存在多次模式。如果沒有,那就什麼都不做如果是,則在第二次出現之前刪除所有行。在這種情況下,應該刪除行1到11,我想我可以這樣做:但是我似乎已經創造了一個循環將會永存
for (i in 1:nrow(dat2)){
dat2 <- dat2[-i,]
repeat{
if (dat2[i,"CYC"] == dat2[1,"CYC"] &&
dat2[i,"POS"] == dat2[1,"POS"] &&
dat2[i,"REP"] == dat2[1,"REP"])
{break}
}
#dat2trial <- dat2[-c(1:i-1),]
}
。僅僅強調一下,如果它沒有找到重複的陳述模式,那它就不應該做任何事情。
該模式也顯示在第1行。在那種情況下做什麼?刪除模式發生前的所有行? –
是,刪除模式最後一次出現之前的所有行。 – Johannes