Я пытаюсь, чтобы R прочитал слова в каждом столбце и добавил их в таблицу, основываясь на том, сделал ли каждый игрок это событие.
Набор данных Я пытаюсь получить информацию от:
structure(list(Players = c("Mandy", "Jlin", "Gray", "Kiersten",
"Kelsey", "Karlie", "Jordan", "Lilly", "McCarter", "Emma", "Alia",
NA, NA, NA, NA, NA, NA, NA, NA), Subs = c(NA, NA, NA, NA, "Mance",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), FSU = c("6 good alia tackle",
"1 bad", "them pi", "2 good 1 bad", "7 good 1 bad", "them pi",
"2 good 1 bad", "them pi", "8 good them turnover", "them pi",
"3 good 1 bad", "them pi", "4 good kelsey tackle them turnover",
"them pi", "6 good them shot saved mandy SOG", "them pi", "8 good 1 bad",
"them pi", "1 bad"), PI = c("jordan", "mccarter", "kiersten",
"jordan", "jlin", "alia", "mandy", "mandy", NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA), TI = c("them ti good 8 good 1 bad",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), Cleared = c("jordan", NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Corner = c(NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), Tackles = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA), `Free Kicks` = c("kelsey free kick to gray bad",
"them free kick short good 3 good jordan fouls", "them free kick bad",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
), Fouls = c("lilly fouls", NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), VT = c("jordan to karlie karlie turnover unforced",
"jlin to gray bad", "alia to kiersten to lilly to kiersten bad",
"mandy to karlie bad", "kelsey to mccarter to jordan to emma emma fouled",
"mandy to karlie bad", "mandy to kiersten cleared bad", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, 19L
), class = "data.frame")
Мне удалось прочитать в пасах и добавить подсчет каждому игроку и тому, кому они его передали, используя следующий код ниже:
pass = sub('_$','_good',sub("(.*\\w+ to (?:\\w+(?=.*(bad))|\\w+)).*",'\\1_\\2',dat$VT,perl = T))
pass1 = gsub('(to(\\s[^_ ]+(?=\\s)))','\\1_good\n\\2',pass,perl=T)
results = xtabs(V3~.,cbind(read.csv(text=gsub('to',',',pass1),h=F,strip.white = T),V3=1))
results
V2
V1 emma_good gray_bad jordan_good karlie_bad karlie_good kiersten_bad kiersten_good lilly_good mccarter_good
alia 0 0 0 0 0 0 1 0 0
jlin 0 1 0 0 0 0 0 0 0
jordan 1 0 0 0 1 0 0 0 0
kelsey 0 0 0 0 0 0 0 0 1
kiersten 0 0 0 0 0 0 0 1 0
lilly 0 0 0 0 0 1 0 0 0
mandy 0 0 0 2 0 1 0 0 0
mccarter 0 0 1 0 0 0 0 0 0
Поскольку у меня все хорошо и пасы работают, как и ожидалось, мне интересно, сможет ли кто-нибудь помочь мне прочитать другие колонки. Но сейчас я хотел бы найти способ завершить столбец перехваченных проходов (в моем наборе данных это столбец "PI"), поэтому его моделирование вне таблицы для проходов после вызова некоторого кода должно привести к в чем-то похожем на это:
Player PI
Mandy 2
Jlin 1
Gray 0
Kiersten 1
Kelsey 0
Karlie 0
Jordan 2
Lilly 0
McCarter 1
Emma 0
Alia 1
Спасибо, Сэм