Если вы хотите сделать «вещи с фреймами данных», стоит узнать dplyr .
Вы можете получить набор данных прямо из Интернета:
library(readr)
library(dplyr)
cdn_attitudes <- read_csv("http://www.hc-sc.gc.ca/data-donnees/por-rop/cdn-attitudes-healthcare_attitudes-canadiens-system-soins.csv")
Некоторые примеры. Вы можете использовать filter
для удаления строк, где, например, Q2 "Не знаю / Отказаться":
cdn_attitudes %>%
filter(Q2 != "Don't know/Refuse")
Вы можете использовать mutate
с gsub
и as.numeric
, чтобы удалить что-либо "не цифра" и преобразовать в числа:
cdn_attitudes %>%
mutate(Q2 = gsub("\\D+", "", Q2)) %>%
mutate(Q2 = as.numeric(Q2))
Теперь все сложнее. Мы можем filter_at
фильтровать более одного столбца и mutate_at
одновременно изменять значения более чем в одном столбце.
Таким образом, чтобы отфильтровать строки в Q2 и Q3, затем преобразовать в числовое значение:
cdn_attitudes %>%
filter_at(vars(Q2, Q3),
all_vars(. != "Don't know/Refuse")) %>%
mutate_at(vars(Q2, Q3),
funs(gsub("\\D+", "", .))) %>%
mutate_at(vars(Q2, Q3),
funs(as.numeric(.)))
Вам следует подумать о том, действительно ли вы хотите удалить все строки с «Не знаю / отказаться» - может быть лучше преобразовать их , например, в NA, в зависимости от последующего анализа.