0
ここ トラブル
PERSON_ID EVENT
1 10000000001 LST_Mammo_EPI
2 10000000001 EPI
3 10000000002 BC1
4 10000000002 R_B
5 10000000002 BC2
6 10000000002 DEATH
7 10000000002 EPI
8 10000000004 FST_Mammo_FUP1
9 10000000004 OV1_FUP1
10 10000000004 BC1
11 10000000004 LST_Mammo_EPI
12 10000000004 EPI
13 10000000004 OV2_FUP1
14 10000000004 LST_Mammo_FUP1
15 10000000004 FUP1
16 10000000004 BC2
17 10000000004 FUP2
18 10000000005 LST_Mammo_EPI
19 10000000005 EPI
20 10000000007 BC1
21 10000000007 BC2
22 10000000007 DEATH
23 10000000010 DEATH
24 10000000826 FST_Mammo_FUP1
25 10000000826 BC1
26 10000000826 L_B
27 10000000826 LST_Mammo_EPI
28 10000000826 LST_Mammo_FUP1
29 10000000826 BC2
30 10000000826 R_B
31 10000000826 EPI
32 10000000826 OV1_FUP1
33 10000000826 OV2_FUP1
34 10000000826 OV2_FUP2
35 10000000826 FUP1
36 10000000826 FUP2
37 10000000827 DEATH
38 10000000830 BC1
39 10000000830 DEATH
40 10000000844 LST_Mammo_EPI
は、だから私はのは、一人一人のために、特定の二つの事象の間で任意のデータを言わせてもらうためにデータのサブセットを取得する関数を書いた私のデータベースです
node <- function(proxis, fulle, database){
result <- NULL
for (ID in unique(database$PERSON_ID)){
person <- subset(database, database$PERSON_ID == ID)
a <- which(person $EVENT == fulle)
if (length(a) == 0){
next} else {
person <- person[c(1:a),]
b <- which(person$EVENT == proxis)
if (length(b) == 0) {
next} else{
person <- person[c(b:a),]
a <- which(person$EVENT == "OV")
b <- which(person$EVENT == "BC1")
c <- which(person$EVENT == "BC2")
if (min(a,b,c) != 0) {next
}else{
result <- rbind(result,person)
}}}}
result
}
hello <- node("BC1","BC2",test)
しかし、これは私にNULL行列を与えると私は特定の人のためのforループせずに試験したとき、それは正しく私のBC1およびBC2
私は考えていsomethの間でデータを提供しますブレークや結果行列の割り当てに間違っている... 誰も洞察力を与えることができますか?
のいずれかのために不足している場合、これはエラーがスローされます期待される出力? – mtoto
if(min(a、b、c)!= 0)をif(min(長さ(a)、length(b)、length(c))= 0に変更して固定しました。 BC1とBC2の間に行が必要な場合、BC1とBC2の間にイベントOVを設定しないでください。 hello < - node( "BC1"、 "BC2"、test)のように – jayinbluecity