#r
#r
Вопрос:
Два вопроса о R: 1.) Если у меня есть набор данных со значениями нескольких столбцов и одно из значений столбца ‘test_score’, как я могу исключить строки с пустыми значениями (и / или нечисловыми значениями) для этого столбца? (используя pie(), hist() или cor())
2) Если в наборе данных есть столбец с именем ‘Teachers’, как я могу отобразить столбец ‘testscores’ только для строк, где Teacher = Jones?
Создание отдельных векторов без отсутствующих данных:
dat.nomissing <- tenthgrade[!is.nan(Score),]
кажется проблематичным, поскольку два столбца должны оставаться сопряженными.
Я думал о чем-то таком, как:
hist(!is.nan(tenthgrade$Score)[tenthgrade$Teacher=='Jones'])
Однако is.nan создает список значений TRUE, FALSE (как и должно быть).
Комментарии:
1. Покажите данные или их макет.
2. Я бы посмотрел одно из руководств, прилагаемых к R: cran.r-project.org/manuals.html . Или ознакомьтесь с вопросами R здесь, на SO, на все эти вопросы недавно были даны подробные ответы.
3. Я отправил вопрос суперпользователю, поскольку чувствовал, что здесь это было бы неуместно. Это казалось слишком простым, и я чувствовал, что должен знать, как это сделать с имеющейся информацией… но этого не произошло.
Ответ №1:
Используйте подписку. Например:
dat[!is.na(dat$test_score),]
hist(dat$test_score[dat$Teachers=='Jones'])
И более полный пример с искусственными данными:
# Create artificial dataset
dat <- data.frame('test_score'=rnorm(500), 'Teachers'=sample(c('Jones', 'Smith', 'Clark'), 500, replace=TRUE))
# Introduce some random missingness
dat$test_score[sample(1:500, 50)] <- NA
# Keep if test_score is valid
dat.nomissing <- dat[!is.na(dat$test_score),]
# Plot subset of data
hist(dat$test_score[dat$Teachers=='Jones'])