2017-07-31 32 views
0

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

谢谢! :)

+1

您需要使用'转换= TRUE'在'separate'转换为新类型。现在'治疗'是一个角色。 – aosmith

+0

非常感谢!正如你所理解的那样,我对R很陌生:) – Beate

回答

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

+0

我必须使用%>%mutate(as.numeric(处理),但它可以工作 :) – Beate

相关问题