Чтобы создать подмножества на основе значения столбца, вы можете создать поле temp_field на основе значений гена: <0, == 0 и> 0 . а затем split фрейм данных с использованием функции разделения базовой библиотеки.
df_list <- Data %>% rownames_to_column(var = "Id") %>%
gather(name, value, -c(Hugo_Symbol,Id)) %>%
mutate(temp_field = case_when(value < 0 ~ "loss",
value > 0 ~ "gain",
T ~ "neutral"),
temp_field = as.factor(temp_field)
) %>% split(., .$temp_field)
spread_df_func <- function(df){
d <- df %>% select(Id,Hugo_Symbol, name, value) %>% spread(key = name, value = value)
return(d)
}
org_df_list <- df_list %>% map(spread_df_func)
Поскольку у меня нет данных для проверки, вышеуказанная функция может иметь синтаксическую ошибка, однако, она должна быть логически правильной.
Дайте мне знать, если это решит вашу проблему.
Вы также можете обратиться к ссылка , на разделить и объединить данные кадр.