Как изменить значения в столбце data.frame на числа?

У меня есть следующий (образец) data.frame

x <- data.frame(gene = 1:3, Sample1 = 5:7, Sample2 = 4:6, Sample3 = 6:8)

Я хочу изменить имена столбцов, а затем использовать числа в новых заголовках в качестве значений оси X для моего графика.

colnames(x) <- c("Gene", "HeLa_0.2", "HeLa_2.0", "HeLa_5.0")

x_gather <- x %>%
  gather(key=treatment, value=values, -c(Gene)) %>% 
  tidyr::separate(treatment, into=c("Cell_line", "treatment"),sep="_")

ggplot()+
  geom_line(x_gather, mapping=aes(treatment, y=values, group=Gene))

Но я хочу, чтобы числа располагались по оси X, например этот, вместо на оси, подобной этой (которую я получаю, только если копирую свои данные в excel, отформатируйте их как числа, а затем снова загрузите в R...) Любые предложения, как решить эту проблему?

Спасибо! :)


person Beate    schedule 31.07.2017    source источник
comment
Вам нужно использовать convert = TRUE в separate для преобразования в новые типы. Прямо сейчас treatment является персонажем.   -  person aosmith    schedule 31.07.2017
comment
Большое спасибо! Я совсем новичок в R, как вы понимаете :)   -  person Beate    schedule 31.07.2017


Ответы (1)


Все, что вам нужно сделать, это сделать переменную treatment числовой. Например:

x_gather <- x %>%
  gather(key=treatment, value=values, -c(Gene)) %>% 
  tidyr::separate(treatment, into=c("Cell_line", "treatment"),sep="_") %>%
  mutate(treatment = as.numeric(treatment))

ggplot()+
  geom_line(x_gather, mapping=aes(treatment, y=values, group=Gene))

введите здесь описание изображения

person Oriol Mirosa    schedule 31.07.2017
comment
Я должен использовать %›% mutate(as.numeric(лечение), но тогда это работает :) - person Beate; 01.08.2017