R适用于两个数据帧

R适用于两个数据帧,r,apply,R,Apply,我可以想象,答案可以在stackoverflow找到,但我不明白。这就是我的问题: 我有一个data.frame tmp,它由17列和许多行组成。 我要做的是使用apply函数将来自tmp的信息逐行使用近似函数: 这就是你想要的吗?请注意,tmp[,4:16]和tmp[,2]都使用同一行i 也可以使用seq_lennrowtmp来代替seq_alongtmp[,1]。这可能吗?approxtmp[1,4:16],tmp[1,2]在xy中抛出错误。coordsx,y,setLab=FALSE:'x

我可以想象,答案可以在stackoverflow找到,但我不明白。这就是我的问题:

我有一个data.frame tmp,它由17列和许多行组成。 我要做的是使用apply函数将来自tmp的信息逐行使用近似函数:


这就是你想要的吗?请注意,tmp[,4:16]和tmp[,2]都使用同一行i


也可以使用seq_lennrowtmp来代替seq_alongtmp[,1]。

这可能吗?approxtmp[1,4:16],tmp[1,2]在xy中抛出错误。coordsx,y,setLab=FALSE:'x'和'y'长度不同。您需要approxy函数中的节点:approxy,tmp[1,4:16],tmp[1,2],其中y的长度与tmp[1,4:16]相同。在我的应用函数中,我扭曲了y和tmp[,4:16],并编写了一个新的近似函数,在这里我以正确的顺序放入向量,如此完整的tmp[,17],这正是我想要的!非常感谢你!在测试代码之后,它工作得非常好!我有一个问题。为什么我使用您的代码时系统时间比使用问题中的代码时高,但是我得到n x n个结果,而您的解决方案只有n个结果?@Chefkoch只是系统时间还是总时间?它是总时间。我的版本System.timereplicate40,diagapplytmp[,4:ncoltmp-1],1,approx2,y=y,tmp2=tmp[,2]为用户提供13.82,System 1.11,Total 14.96和您的版本系统。timereplicate40,sapplyseq_alongtmp[,1],functioni approxy,tmp[i,4:16],tmp[i,2]为用户提供19.95,系统0.00,Total 19.95好的,我发现最快的方法是使用我的原始代码,以10块为一块,避免在nxn矩阵中出现不必要的许多usles结果。但是非常感谢你的帮助!
set.seed(4542)  # make it reproducible

tmp <- as.data.frame(matrix(rnorm(20*17), ncol = 17))
y <- rnorm(length(4:16))

s <- sapply(seq_along(tmp[, 1]), function(i) approx(y, tmp[i, 4:16], tmp[i, 2]))