2

R には次のようなデータフレームがあります。

    id  event_explain
1   80  list("Minutes played", 0, 0)
2   81  list("Minutes played", 0, 0)
3   82  list("Bonus", 2, 2, "Clean sheets", 1, 4, "Minutes played", 90, 2)

「Minutes Played」の後の数字を抜き出そうとしているので、この例では 0,0,90 のようになります。

「Minutes Played」要素を識別するために、ある種のインデックス リストを作成しました。

    list(c(TRUE, FALSE, FALSE), c(TRUE, FALSE, FALSE), c(FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)

おそらく、各リスト要素の T/F を (どういうわけか) 並べ替えて、要素に続く番号を引き出すことができると考えていました。

問題は、データフレームの列をサブセット化してリストの要素を引き出す方法を見つけることさえできないことです。

何か案は?

4

2 に答える 2

0
## borrow the man above's data
mydf <- data.frame(
  id = c(80, 81, 82), event = I(
    list(list("Minutes played", 0, 0),
         list("Minutes played", 0, 0), 
         list("Bonus", 2, 2, "Clean sheets", 1, 4, "Minutes played", 90, 2))))
result<-c()
for (i in 1:3) {
    if("Minutes played" %in% mydf$event[[i]]) {
        result<-c(result,mydf$event[[i]][which("Minutes played" == mydf$event[[i]])+1] )
    }
}
于 2013-08-30T16:54:35.833 に答える