"私は3つの連続した" 1 "または"真 "の各観測の最初と最後の月を取得することです" 。最初の月と最後の月を2つの新しい列 "begin"と "end"を作成したいと思います。 私の最初の観測の例では、avrilと等しく始まり、juinと等しくなります。 5観測ではfevrierと等しくなり、avrilと等しくなります。 9観測では、janvierと等しくなり、火星と同じになります。 。 条件と行と列ダブルループ
...
は、私はこれを実行しようとしました:nom <- letters[1:5]
pseudo <- paste(name, 21:25, sep = "")
janvier <- c(0, 1, 1, 1, 0)
fevrier <- c(1, 1, 1, 1, 1)
mars <- c(0, 0, 0, 1, 1)
avril <- c(1, 1, 1, 0, 1)
mai <- c(1, 0, 1, 1, 1)
juin <- c(1, 1, 0, 1, 0)
df <- data.frame(nom =nom, pseudo = pseudo, janvier = janvier,
fevrier = fevrier, mars = mars, avril = avril,
mai = mai, juin = juin)
dfm <- as.matrix(df[, -c(1, 2)])
my_matrix <- matrix(nrow = 10, ncol = 6)
for(i in 1:dim(dfm)[1]){
for(j in 1:dim(dfm)[2]){
if(dfm[i, j] + dfm[i, j+1] + dfm[i, j+2] == 3){
my_matrix[i, j] <- "periode_ok"
my_matrix[i, j+1] <- "periode_ok"
my_matrix[i, j+2] <- "periode_ok"
}
}
}
ouputをこのようになります。任意の助けがをapreciatedされます
begin <- c("avril", "no info", "no info",
"janvier", "fevrier", "avril", "no info",
"no info", "janvier", "fevrier")
end <- c("juin", "no info", "no info", "mars",
"avril", "juin", "no info", "no info",
"mars", "avril")
output <- data.frame(nom =nom, pseudo = pseudo, janvier = janvier,
fevrier = fevrier, mars = mars, avril = avril,
mai = mai, juin = juin, begin = begin,end = end)
'のために(1 J:()(DFMを暗く[2] -2))'これを使用します。 – Masoud
'pseudo'は他のすべての変数と同じように5の長さでなければなりません。 – Masoud
https://stackoverflow.com/questions/25316565/return-column-index-of-first-set-of-consecutive-values-in-data-frame-row-in-r – Masoud