Я пытаюсь разграничить список в R, используя несколько разных значений, и мне кажется, что я сильно усложняю то, что мне нужно сделать.
Я бы хотел выделить что-нибудь в «положительный» список (ie., который начинает список или имеет знак + перед ним) в столбце «Позитив».
Все, что имеет знак «-» в столбце «Отрицательный».
Все, что похоже на c («EmilyP», «EmilyS») в столбец «Эмили»
, и все, что равно c («Красный», «Синий») в столбец «Цвет».
Я пробовал dplyr и tidyr и не могу выполнить эту работу, затем я начал работать над al oop, и это кажется слишком сложным.
Кто-нибудь может предложить лучший метод?
(входы и выходы ниже).
input <- structure(list(Team.Name = c("Team 1", "Team 2", "Team 3", "Team 4",
"Team 5", "Team 6"), Members = c("Frank + Terry - Joan - Bob + EmilyS + Red",
"Frank + Bob - Neil - Janet - Tim + EmilyP + Blue", "Frank + Blue - Joan - Bob + EmilyP + Red",
"Tom + Jerry - Bill - Jenny", "Tess + Jean + Jill + EmilyS",
"Bill + Bob + Red")), class = "data.frame", row.names = c(NA,
-6L))
и я пытаюсь получить это:
output <- structure(list(Team.Name = c("Team 1", "Team 2", "Team 3", "Team 4",
"Team 5", "Team 6"), Positive = c("Frank + Terry", "Frank + Bob",
"Frank", "Tom + Jerry", "Tess + Jean + Jill", "Bill + Bob"),
Negative = c("Joan - Bob", "Neil - Janet - Tim", "Joan - Bob",
"Bill - Jenny", "", ""), Emily = c("EmilyS", "EmilyP", "EmilyP",
"", "EmilyS", ""), Color = c("Red", "Blue", "Red + Blue",
"", "", "Red")), class = "data.frame", row.names = c(NA,
-6L))