将值写到每一行的括号中

问题描述

目前,我有一个数据框,例如:

       case_med   case_min  case_max
IL8    4.022518 -0.8826681 11.482423
VEGFA 10.118825  5.8325935 11.865825
CD8A  12.232512  3.9384582 15.873059
MCP3   1.483711 -0.4865190  4.882046
GDNF   1.773944 -0.9836022  4.774641
CDCP1  2.567742  0.3207944  6.024392

我想将每一行转换为中值(min,max)之类的格式,

        case_med(case_min,case_max)
IL8    4.022518(-0.8826681,11.482423)
VEGFA 10.118825(5.8325935,11.865825)
CD8A  12.232512(3.9384582,15.873059)
MCP3   1.483711(-0.4865190,4.882046)
GDNF   1.773944 (-0.9836022,4.774641)
CDCP1  2.567742(0.3207944,6.024392)

转换后,新的数据帧应只有一列解释为“ case_med(case_min,case_max)”。如何将其他两列中的值合并到方括号中并将它们存储在一列中?预先感谢!

解决方法

您可以将paste()个列放在一起(准确地说,paste0()):

data.frame(case_med.min_max = paste0(df$case_med,"(",df$case_min,",df$case_max,")"),row.names = rownames(df))

                    case_med.min_max
IL8   4.022518(-0.8826681,11.482423)
VEGFA 10.118825(5.8325935,11.865825)
CD8A  12.232512(3.9384582,15.873059)
MCP3    1.483711(-0.486519,4.882046)
GDNF   1.773944(-0.9836022,4.774641)
CDCP1   2.567742(0.3207944,6.024392)

数据

df <- read.table(header = TRUE,text = "       case_med   case_min  case_max
IL8    4.022518 -0.8826681 11.482423
VEGFA 10.118825  5.8325935 11.865825
CD8A  12.232512  3.9384582 15.873059
MCP3   1.483711 -0.4865190  4.882046
GDNF   1.773944 -0.9836022  4.774641
CDCP1  2.567742  0.3207944  6.024392")