gpt4 book ai didi

r - 应用两个数据框

转载 作者:行者123 更新时间:2023-12-04 11:16:22 25 4
gpt4 key购买 nike

我正在使用 R,并且我有两个 data.frames,AB .它们都有 6 行,但是 A有 25000 列(基因),和 B有 30 列。我想应用一个带有两个参数的函数 f(x,y)哪里xA 的每一列和 yB 的每一列.到目前为止它看起来像这样:

i = 1
for (x in A){
j = 1
for (y in B){
out[i,j] <- f(x,y)
j = j + 1
}
i = i + 1
}

我对此有两个问题:从我的 Python 编程中,我认为跟踪这样的计数器很笨拙,而从我的 R 编程中,我对 for 循环感到紧张。但是,我不太明白如何申请 apply (或者即使我应该应用 apply )来解决这个问题,并希望有人能启发我。我需要治疗 f()现在作为原子(实际上是 cor.test() )。

最佳答案

由于您使用的是数据框,因此使用 lapply 或 sapply 执行此操作可能会更快(特别是考虑到数据框的范围)。例如,

x <- data.frame(col1=c(1,2,3,4), col2=c(5,6,7,8), col3=c(9,10,11,12))
y <- data.frame(col1=c(1,2,3,4), col2=c(5,6,7,8))
bl <- lapply(x, function(u){
lapply(y, function(v){
f(u,v) # Function with column from x and column from y as inputs
})
})
out = matrix(unlist(bl), ncol=ncol(y), byrow=T)

关于r - 应用两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3557652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com