Как я могу условно разделить фрейм данных в r? - PullRequest
1 голос
/ 02 мая 2019

Я хочу разделить мой фрейм данных (названный как «данные») на две группы (A и B).

Для группы A я хочу назначить данные, которые имеют значение 1 в определенном столбце (предположим, имя столбца «x»).

Для группы B я хочу назначить данные со значением 0 в определенном столбце (тот же столбец, «x»).

Я провел некоторое исследование о функции разделения, но не смог найти никакого подходящего источника для моего случая.

Если мой вопрос слишком расплывчатый, пожалуйста, прокомментируйте его и дайте мне знать, а не закрывайте этот вопрос. Я приложу некоторые из моих кодов, чтобы было понятно.

Спасибо!

РЕДАКТИРОВАТЬ 1

Как предложил Руи, я приложил результат dput. Однако, поскольку мои данные довольно большие, я сделал

dput(head(dataSetTrim, 10)) instead of dput(head(dataSetTrim, 20))
> dput(head(dataSetTrim, 10))
structure(list(sp16ap = c("Yes", "No", "Yes", "Yes", "Yes", "Yes", 
"No", "Yes", "Yes", "No"), sp17abscore = c("3", NA, NA, "4", 
"Exam not taken", "Exam not taken", NA, "3", "3", NA), sp17abyear = c(12, 
NA, NA, 12, 12, 12, NA, NA, 12, NA), sp17abgrade = c(3, NA, NA, 
3.67, 4, 2.67, NA, NA, 4, NA), sp17bcscore = c(NA_character_, 
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_, 
NA_character_, NA_character_, NA_character_, NA_character_), 
    sp17bcyear = c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), sp17bcgrade = c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_), sp17statscore = c(NA, NA, 
    "4", NA, NA, NA, NA, NA, NA, NA), sp17statyear = c(NA, NA, 
    12, NA, NA, NA, NA, NA, NA, NA), sp17statgrade = c(NA, NA, 
    4, NA, NA, NA, NA, NA, NA, NA), Q3FUS_Yes = c("Yes", " ", 
    " ", " ", " ", " ", " ", " ", " ", "Yes"), Q3FUS_No = c(" ", 
    " ", " ", " ", "No", " ", "No", " ", " ", " "), switchPersist = c(12, 
    16, 21, 16, 2, 22, 2, 21, 16, 12), SWP = c(0, 0, 0, 0, 1, 
    0, 1, 0, 0, 0)), row.names = c(1L, 2L, 3L, 4L, 5L, 7L, 8L, 
9L, 10L, 11L), class = "data.frame")

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете просто использовать обычные команды для выбора строк.Если вы хотите разделить в соответствии со значением столбца SWP, вы можете написать

dataSetTrim <- ...your data...
A <- dataSetTrim[dataSetTrim$SWP==1,]
B <- dataSetTrim[dataSetTrim$SWP==0,]

, чтобы получить разделенные кадры данных в A и B.

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