for循环中的错误

for循环中的错误,r,for-loop,R,For Loop,我有一个数据集(美国的医院和某些值,如“州”、“心脏病发作存活率”等)。 现在我想创建一个函数 function(outcome, num = "best") 其中,结果是“XYZ的存活率”,num是每个州的第无数家医院(例如,“存活率心脏病发作”和每个州关于存活率的第五好医院) 我想通过一个循环来实现这一点(我已经读取了.csv文件等) 我真的不明白为什么代码不起作用。如果你对数据感兴趣:结果如@CathG所说,你需要结果来解决@CathG向你展示的问题,并创建一个空的数据帧使用:data.

我有一个数据集(美国的医院和某些值,如“州”、“心脏病发作存活率”等)。 现在我想创建一个函数

function(outcome, num = "best")
其中,结果是“XYZ的存活率”,num是每个州的第无数家医院(例如,“存活率心脏病发作”和每个州关于存活率的第五好医院)

我想通过一个循环来实现这一点(我已经读取了.csv文件等)


我真的不明白为什么代码不起作用。如果你对数据感兴趣:

结果如@CathG所说,你需要
结果来解决@CathG向你展示的问题,并创建一个空的数据帧使用:data.frame(NULL)omg,我对编程是新手,即使我仔细检查了所有问题-90%的问题都是“拼写错误谢谢CathG和其他人的三重检查@我知道apply和for循环在计算强度上是相似的,对吗?因此,您建议应用更多的方法以保持清晰?@Gnusper这两种方法的比较速度取决于具体情况,但R更适合矢量化方法。实际上,在许多情况下,
*apply
函数比循环快得多。此外,使用
sapply
lappy
可以避免创建空的data.frame,然后填充它(这肯定是低效的)。
datasplit <- split(data, data$State) ## split data for every state
        results <- data.frame ## create an empty data frame


        for(i in 1:54){ ##well, 54 states
                        singlestate <- unsplit(datasplit[i], 1)
                        ordered <- singlestate[order(singlestate[,outcome], singlestate[,"Hospital.Name"], na.last=NA),]
                        ordered2 <- ordered[num,c("Hospital.Name", "State")]
                        results <-  rbind(results, ordered2)
        }
Error in rep(xi, length.out = nvar) : 
  attempt to replicate an object of type 'closure'