R 为每行计算列中的值

R 为每行计算列中的值,r,R,下面是我试图操纵的表格: colnames sampA sampB #1 conA conB #2 1.1 4.4 #3 2.2 5.5 #4 3.3 6.6 我想计算$sampB中每个数字的log2(x(1-x))。以下是我目前的代码: DF[-1,3] <- apply(DF[-1,]$sampB,1,function(x) log2(x(1-x))) 您不需要apply(),因为log2()是矢量化的。试试这个 x

下面是我试图操纵的表格:

colnames sampA sampB
#1       conA  conB
#2       1.1   4.4
#3       2.2   5.5
#4       3.3   6.6
我想计算$sampB中每个数字的log2(x(1-x))。以下是我目前的代码:

 DF[-1,3] <- apply(DF[-1,]$sampB,1,function(x) log2(x(1-x)))

您不需要
apply()
,因为
log2()
是矢量化的。试试这个

x <- as.numeric(as.character(DF$sampB[-1]))
log2(x * (1 - x))

x您不需要
apply()
,因为
log2()
是矢量化的。试试这个

x <- as.numeric(as.character(DF$sampB[-1]))
log2(x * (1 - x))

x
sapply(DF,class)
的结果是什么?嗨,@RichardScriven我尝试了一个没有log2()的函数,就像x+1一样,它显示了相同的错误消息。conA和conB只是原始数据中的一些文本。我不需要它们来计算,但我以后可能需要它们。好吧,那么我想我下面的答案会有用的。它删除了第一个元素
sapply(DF,class)
的结果是什么?嗨,@RichardScriven我尝试了一个没有log2()的函数,就像x+1一样,它显示了相同的错误消息。conA和conB只是原始数据中的一些文本。我不需要它们来计算,但我以后可能需要它们。好吧,那么我想我下面的答案会有用的。它删除了第一个元素在我导入它时作为一个因子出现,所以
as。可能需要数值(as.character(…)
。在我导入它时作为一个因子出现,所以
as。数值(as.character(…)
可能需要。