# Читаем датасет по ссылке так, чтобы первая строка таблицы являлась именами столбцов, и записываем результат в переменную immunR

immunR <- read.table('https://kodomo.fbb.msu.ru/FBB/year_23/R/immuno_response_2025.tsv', header = T)

# Посмотреть начало файла, первые 6 строк по умолчанию

head(immunR)

# Посмотреть первые 10 строк файла

head(immunR, 10) 

# Посмотреть конец файла, по умолчанию 6 строк

tail(immunR)

# Структура таблицы

str(immunR)

# Имена колонок кладем в переменную cnames, теперь у нас есть вектор и имен колонок

cnames <- colnames(immunR)
cnames

# Длина вектора

length(cnames)

# Срезы векторов по индексу

cnames[1] # взять первый элемент вектора
cnames[5] # взять пятый элемент вектора 
cnames[1:3] # взять с первого по третий элементы вектора
cnames[3:1] # взять с третьего по первый элементы вектора

cnames[c(1,5,7)] # взять первый, пятый и седьмой элементы вектора

cnames[2:9] # взять с второго по девятый элементы вектора
cnames[-1] # взять вектор без первого элемента
cnames[2:length(cnames)] # взять с второго по последний элемент вектора

cnames[9] # взять девятый элемент вектора
cnames[length(cnames)] # взять последний эемент вектора

# срезы таблиц по индексам

immunR
head(immunR)
str(immunR)
dim(immunR) # размерность объекта

immunR[1:5, 1:3] # взять строки с первой по пятую и столбцы с первого по третий
immunR[1:5, 1:length(immunR)] # взять строки с первой по пятую и все столбцы
immunR[1:5, ] # взять строки с первой по пятую и все столбцы

# выводим уникальные значения из столбца Cancer 
unique(immunR$Cancer)

# проверяем, какие значения из столбца Cancer имеют значение Melanoma
immunR$Cancer == 'Melanoma'

# из таблицы immunR отбираем только такие строки, где в столбце Cancer - Melanoma
immunR_melanoma <- immunR[immunR$Cancer == 'Melanoma', ]

# проверяем, что мы все сделали правильно
str(immunR_melanoma)
table(immunR_melanoma$Cancer)
