首页 > 解决方案 > R:在for循环中为数据框使用分配的名称

问题描述

我正在研究 R 中的以下 for 循环:

for(i in dim(Test)[1]) { 
                 nam <- paste(Test[i,1])
                 assign(nam, as.data.frame(matrix(nrow=1,ncol=8)))
                        for (i in 1:dim(nam)[2]){
                         nam[,i]=round(data[,1]*M[1,i]+data[,2]*M[2,i]+data[,3]*M[3,i]+
                         data[,4]*M[4,i]+data[,5]*M[5,i]+data[,6]*M[6,i]+data[,7]*M[7,i]+
                         data[,8]*M[8,i])}}

但是,我收到以下错误消息:

Error in 1:dim(nam)[2] : argument of length 0

如何重写 dim(nam)[2] 以便它动态地使用我分配给数据框的名称?

为了完整起见,这里是我正在使用的数据框:

rand.sum <- function(n){
x <- sort(runif(n-1))
c(x,1) - c(0,x)
 }

M <- t(replicate(8,rand.sum(8)))

test <- as.data.frame(t(replicate(1, rand.sum(10))))

ID <- c("ID")

data <- cbind(ID,test)

标签: rfor-loopdynamicnested

解决方案


推荐阅读