R中apply语句的问题

R中apply语句的问题,r,apply,R,Apply,我想使用apply语句对R中数据帧的每一行执行一些操作 下面是我使用一组参数和一个索引I调用函数“calc.Sphere.Metrics”的地方。我将结果存储在每一行中 for(i in 1: dim(position.matrix)[1]){ results.obs[i,] <- calc.Sphere.Metrics(i, culled.mutation.data, position.matrix, protein.metrics, radius) } 用于(i在1:dim

我想使用apply语句对R中数据帧的每一行执行一些操作

下面是我使用一组参数和一个索引I调用函数“calc.Sphere.Metrics”的地方。我将结果存储在每一行中

for(i in 1: dim(position.matrix)[1]){
   results.obs[i,] <- calc.Sphere.Metrics(i, culled.mutation.data, position.matrix, protein.metrics, radius) 
 }
用于(i在1:dim(位置矩阵)[1]){

结果.obs[i,]可能是这样的:

result.obs <- do.call(rbind, lapply(seq_len(dim(position_matrix)[1]),
    calc.Sphere.Metrics, culled.mutation.data, position.matrix, protein.metrics, radius))

result.obs我们可能需要更多的细节来提供帮助。
calc.Sphere.Metrics
的全部内容对于初学者来说可能有点混乱。calc shere Metrics的作用是获取索引i,查找其他参数中的特定值,如mutation.data、position.matrix等,并返回数据帧结果1行8列(与results.obs完全相同)。为什么只是一个骨架?它真的太长了吗?我们希望所有的东西都能矢量化。Matthew的答案可能会直接替代
for
循环。但我要求更多的代码,因为编写函数从调用环境中提取整个对象,而其目的是迭代地对它们进行操作这通常是一个信号,表明该函数中发生了一些不好的事情。我不需要迭代地执行它。每一行都是“独立的”可以这么说。这很接近,但是因为calc.Sphere.Metrics返回一个包含1行8列的数据帧,所以创建的结果列表并不清楚。但是,calc.Sphere.Metrics返回的每个数据帧的格式都是正确的。最后,这起到了作用。不过,您让我走上了正确的道路,谢谢!as.data.frame(t(sapply(seq(position.matrix[,2])),calc.Sphere.Metrics,culled.mutation.data,position.matrix,protein.Metrics,radius)))
result.obs <- do.call(rbind, lapply(seq_len(dim(position_matrix)[1]),
    calc.Sphere.Metrics, culled.mutation.data, position.matrix, protein.metrics, radius))