如何将data.frame列中的值更改为数字?

时间:2017-07-31 16:15:37

标签: r dataframe ggplot2 tidyr tidyverse

我有以下(示例)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轴上间隔this,而不是像this这样的轴(我只有在将数据复制到excel时,我才能将其格式化为数字,然后再次加载到R ...) 有任何建议如何解决这个问题?

谢谢! :)

1 个答案:

答案 0 :(得分:0)

您需要做的就是将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))

enter image description here