R, перечислите предмет (ы), где студент "B" или "C" - PullRequest
0 голосов
/ 25 апреля 2019

Я начинаю с R. Я тестирую набор данных, который называется «студенты». Это матрица с именем студента и их классификацией (A, B, C) по нескольким предметам (Vars). Я хотел бы отфильтровать имя и перечислить предмет (ы), когда предмет имеет значение «B» или «C». Пожалуйста, посмотрите, что у меня есть и что я хотел бы получить.

Спасибо за вашу помощь

Что у меня есть ...

Name    MATH    LANG    GYMN    LIT SOC
Nigel   A   B   C   A   C
John    C   C   A   B   C
Martha  A   A   A   A   A

Я хочу ...

Nigel   
LANG 
GYMN
SOC

John
MATH
LANG
LIT
SOC

1 Ответ

0 голосов
/ 25 апреля 2019

Используя следующие данные,

data <- data.frame(row.names = c("Nigel", "John", "Martha"),
               MATH = c("A", "C", "A"),
               LANG = c("B", "C", "A"),
               GYMN = c("C", "A", "A"),
               LIT = c("A", "B", "A"),
               SOC = c("C", "C", "A"))

Мы можем применить наш тест к каждой строке данных (есть более эффективные способы, но это очень поучительно),

rst <- apply(data, 1, function(x) which(x == "B" | x == "C"))

$Nigel
LANG GYMN  SOC 
   2    3    5 

$John
MATH LANG  LIT  SOC 
   1    2    4    5 

$Martha
named integer(0)

Возвращает список с соответствующими предметами, используйте, например, rst$Nigel, чтобы получить соответствующую информацию о студентах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...