Фильтрация нескольких переменных из одного столбца - PullRequest
0 голосов
/ 30 октября 2018

У меня есть вопрос, на который я не могу найти ответ на этом форуме. Я пытался отфильтровать столбец из моего набора данных в R. Я использую набор данных с 7321 строк и 28 столбцов. В одной колонке, посвященной типу предприятий, есть четыре переменные: Wirtschaft, Hochschule, außeruniversitäre Forschung и Sonstige. Я хотел бы объединить Wirtschaft и außeruniversitäre Forschung в новом столбце с именем private и отфильтровать переменную Hochschule в новый столбец с именем public. Теперь я попробовал следующее:

Сначала я попытался создать подмножество, в которое включены обе «приватные переменные»:

subdataprivate <- subset(data, typ == "außeruniversitäre Forschung" & typ == "Wirtschaft")

Проблема в том, что я получаю подмножество с 0 наблюдениями для 28 переменных. Когда я запускаю коды отдельно, вот так:

subdataprivate1 <- subset(data, typ == "außeruniversitäre Forschung")

subdataprivate2 <- subset(data, typ == "Wirtschaft")

Я получаю достаточные наблюдения для всех переменных (1559 наблюдений за 28 переменными и 3548 наблюдений за 28 переменными). Дело в том, что мне нужно объединить эти виды бизнеса для проведения моих анализов.

Та же проблема возникает, когда я пытаюсь фильтровать данные с помощью пакета dplyr. Может ли кто-нибудь сказать мне, что я делаю не так? Я довольно новичок в R и на этом форуме, поэтому заранее прошу прощения за свой непрофессиональный способ задать этот вопрос.

1 Ответ

0 голосов
/ 30 октября 2018

Без публикации ваших данных я должен использовать фиктивные данные, но я бы сделал что-то подобное, используя mutate и if_else. Если у вас есть этот столбец, вы можете использовать подмножество, как у вас с базой R, или использовать filter из dplyr.

library(tidyverse)

data <- tibble(school = rep(c("school 1", "school 2", "school 3", "school 4"), 5))

data_transformed <- data %>%
 mutate(private_public = if_else(school == "school 1" | school == "school 2",
                                 "private",
                                 "public"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...