R 使用向量和循环创建数据帧
我需要创建一个由75个向量组成的数据帧“CI”,与下面的datframe类似,但有75个元素,而不是3个:R 使用向量和循环创建数据帧,r,loops,dataframe,lapply,R,Loops,Dataframe,Lapply,我需要创建一个由75个向量组成的数据帧“CI”,与下面的datframe类似,但有75个元素,而不是3个: cis <- data.frame('sub1.ci'=as.vector(cis$mnes_Subject_1$ci[mask]),'sub2.ci'=as.vector(cis$mnes_Subject_2$ci[mask]),'sub3.ci'=as.vector(cis$mnes_Subject_3$ci[mask])) 这看起来很简单,但我做不到!我试过使用lappy,但
cis <- data.frame('sub1.ci'=as.vector(cis$mnes_Subject_1$ci[mask]),'sub2.ci'=as.vector(cis$mnes_Subject_2$ci[mask]),'sub3.ci'=as.vector(cis$mnes_Subject_3$ci[mask]))
这看起来很简单,但我做不到!我试过使用lappy
,但似乎无法使其工作
我需要一些帮助。谢谢 您能提供一个数据帧应该是什么样子的示例吗?向量的信息来自何处?您可以获得所需的数据帧
cis <- data.frame(lapply(1:75, function(x)cis[[paste0("mnes_Subject_",x)]]$ci[mask]))
cis非常感谢您!它起作用了!为什么我可以跳过“as.vector”函数?我认为Lappy返回的是一个列表而不是一个向量?@Clin From?data.frame
:如果列表、数据帧或矩阵被传递到data.frame,就好像每个组件或列都被作为一个单独的参数传递(受I保护的矩阵除外)。
cis <- data.frame(lapply(1:75, function(x)cis[[paste0("mnes_Subject_",x)]]$ci[mask]))
names(cis) <- paste0("sub",1:75,".ci")