问题描述
我正在使用R进行数据分析,但是实验室中的其他所有人都使用GraPHPad Prism,并且还要求我也使用该软件显示数据。 在R中,我习惯于以“每行一个观测值”的方式处理数据,因此我可能会有类似的数据
Sample Gene treatment fold change
1 GBP1 no IFN -0,11
2 GBP1 no IFN -0,05
3 GBP1 no IFN 0,02
4 GBP1 IFN 300
5 GBP1 IFN 200
6 GBP1 IFN 400
1 GBP2 no IFN -0,5
2 GBP2 no IFN -0,55
3 GBP2 no IFN 0,3
4 GBP2 IFN 100
5 GBP2 IFN 140
6 GBP2 IFN 200
虽然GraPHPad希望数据的结构如下
no IFN 1 no IFN 2 no IFN 3 IFN 1 IFN 2 INF3
GBP1 -0,11 -0,05 0,02 300 200 400
GBP2 -0,5 -0,55 0,3 100 140 200
所以我想知道是否有人知道将R样式数据导入GraPHPad Prism 8的方法?我无法以一种可靠的方式用R自己进行转换。
最佳
尼古拉斯
解决方法
您可以删除Sample
列,为treatment
列添加一个数字,然后使用pivot_wider
获取宽格式的数据。
library(dplyr)
df %>%
select(-Sample) %>%
group_by(Gene,treatment) %>%
mutate(treatment = paste0(treatment,row_number())) %>%
tidyr::pivot_wider(names_from = treatment,values_from = fold_change)
# Gene noIFN1 noIFN2 noIFN3 IFN1 IFN2 IFN3
# <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#1 GBP1 -0,11 -0,05 0,02 300 200 400
#2 GBP2 -0,5 -0,55 0,3 100 140 200
数据
df <- structure(list(Sample = c(1L,2L,3L,4L,5L,6L,1L,6L),Gene = c("GBP1","GBP1","GBP2","GBP2"),treatment = c("noIFN","noIFN","IFN","IFN"),fold_change = c("-0,11","-0,05","0,02","300","200","400",5",55",3","100","140","200"
)),class = "data.frame",row.names = c(NA,-12L))