Функция subset() в R - фильтрация данных
Функция subset() в R используется для фильтрации данных из датафрейма на основе условий.
Синтаксис subset() более краток и интуитивно понятен, чем фильтрация с помощью [ ] квадратных скобок.
Синтаксис функции subset() выглядит следующим образом:
subset(x, subset, select)
Описание параметра:
xДатафрейм.
subsetУсловие фильтрации строк (логическое выражение).
selectФильтрация столбцов, можно указать, какие столбцы сохранить.
Пример
# Создать датафрейм
df <- data.frame(
Name= c("Zhang San", "Li Si", "Wang Wu", "Zhao Liu", "Qian Qi"),
Age= c(25, 30, 28, 35, 22),
Score= c(88, 92, 76, 85, 90),
City= c("Beijing", "Shanghai", "Beijing", "Guangzhou", "Shanghai"),
stringsAsFactors = FALSE
)
# Отфильтровать студентов с баллом >= 85
high_scores <- subset(df, Score>= 85)
print("Score >= 85:")
print(high_scores)
# Фильтрация по нескольким условиям AND
print("Beijing и балл >= 80:")
print(subset(df, City== "Beijing" &Score>= 80))
# Фильтрация столбцов
print("Показать только Name и Score:")
print(subset(df, select = c(Name, Score)))
df <- data.frame(
Name= c("Zhang San", "Li Si", "Wang Wu", "Zhao Liu", "Qian Qi"),
Age= c(25, 30, 28, 35, 22),
Score= c(88, 92, 76, 85, 90),
City= c("Beijing", "Shanghai", "Beijing", "Guangzhou", "Shanghai"),
stringsAsFactors = FALSE
)
# Отфильтровать студентов с баллом >= 85
high_scores <- subset(df, Score>= 85)
print("Score >= 85:")
print(high_scores)
# Фильтрация по нескольким условиям AND
print("Beijing и балл >= 80:")
print(subset(df, City== "Beijing" &Score>= 80))
# Фильтрация столбцов
print("Показать только Name и Score:")
print(subset(df, select = c(Name, Score)))
Выполнение приведенного выше кода дает следующий вывод:
[1] "成绩 >= 85:" 姓名 年龄 成绩 城市 1 张三 25 88 北京 2 李四 30 92 上海 4 赵六 35 85 广州 5 钱七 22 90 上海 [1] "北京且成绩 >= 80:" 姓名 年龄 成绩 城市 1 张三 25 88 北京 [1] "只显示姓名和成绩:" 姓名 成绩 1 张三 88 2 李四 92 3 王五 76 4 赵六 85 5 钱七 90Другие расширения
Примеры на языке R