如何在R中的特定列上执行log2转换

时间:2013-10-11 02:31:51

标签: r

我有一个这样的数据框:

d <-  
read.table(header=TRUE,text='
      gene       0h       4h      24h       48h      72h
1     MIB2 5.329502 5.202208 4.742011 4.8148886 2.263599
2 SLC35E2B 6.461612 6.599991 6.464688 6.5399660 6.378209
3   CALML6 5.200950 5.308204 5.848097 6.2346177 6.744116
4   CALML6 5.200950 5.308204 5.848097 6.2346177 6.744116
5  FAM213B 5.228090 5.379973 5.717725 5.7202588 6.204203
6   PRDM16 2.981332 1.538496 1.263351 0.6315327 3.622116')

我想在第2列:6上执行log2转换,但保留第1列的信息。

我可以使用log(d[2:6],2)记录变换列2:6但是我丢失了基因信息。

1 个答案:

答案 0 :(得分:6)

如果要将其保存回相同的data.frame,请使用:

d[, 2:6] <- log(d[2:6], 2)
d

如果要将其保存到新对象,请首先获取副本:

d.new <- d
d.new[, 2:6] <- log(d[2:6], 2)
d.new

如果您愿意,也可以使用cbind