【问题标题】:Create data frame with vectors and loops使用向量和循环创建数据框
【发布时间】:2020-01-20 15:45:13
【问题描述】:

我需要创建一个由 75 个向量组成的数据框“cis”,如下面的数据框,但包含 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]))

数据框的元素应采用相同的格式:对于 k=1 到 75,

'subk.ci'=as.vector(cis$mnes_Subject_k$ci[mask]).

这看起来很简单,但我无法管理它!我尝试使用lapply,但我似乎无法让它工作。

我会在这里使用一些帮助。谢谢!

【问题讨论】:

    标签: r loops dataframe lapply


    【解决方案1】:

    你可以得到你想要的数据框

    cis <- data.frame(lapply(1:75, function(x)cis[[paste0("mnes_Subject_",x)]]$ci[mask]))
    

    然后用 :

    设置列名
    names(cis) <- paste0("sub",1:75,".ci")
    

    【讨论】:

    • 非常感谢!有用!为什么我可以跳过“as.vector”函数?我以为 lapply 返回的是一个列表而不是一个向量?
    • @Clin 来自?data.frame:如果将列表或数据框或矩阵传递给 data.frame,就好像每个组件或列都作为单独的参数传递(受保护的矩阵除外一)。
    猜你喜欢
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2015-11-23
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多