首页 > 解决方案 > 仅将 log2 转换应用于 data.frame 的数字列

问题描述

我正在尝试log2对我的数据集进行转换,但我不断收到一条错误消息,提示“数据框中的非数字变量”。我的数据有row.names = 1并且header = TRUE属于类data.frame()

我尝试添加lappy(na.strings),但这并不能解决问题

Shared_DEGs <- cbind(UT.Degs_heatmap[2:11], MT.Degs_heatmap[2:11], HT.Degs_heatmap[2:11])
Shared_DEGs1 <- `row.names<-`(Shared_DEGs, (UT.Degs_heatmap[,1]))
MyData.INF.log2 <- log2(Shared_DEGs1)

数据应该被 log2 转换为输出

标签: rdataframe

解决方案


另一种使用base R's 的方式rapply,请使用@r2evans 提供的数据。

rapply(mydf, f = log2, classes = c("numeric", "integer"), how = "replace")
#       num      int chr  lgl
#1 1.651496 2.321928   A TRUE

推荐阅读