【问题标题】:Insert list of vectors to multiple tables in R将向量列表插入R中的多个表
【发布时间】:2017-12-31 14:49:25
【问题描述】:

我有一个包含 12 个表的列表。它们看起来几乎一样。其中一张表如下所示:

$X2015_kvish_1_10t
kvish keta maslul yom nefah status                date
1       1   10      1   2  1346     NA 2015-06-15 00:00:00
2       1   10      1   2   788     NA 2015-06-15 01:00:00
3       1   10      1   2   626     NA 2015-06-15 02:00:00
4       1   10      1   2   652     NA 2015-06-15 03:00:00
5       1   10      1   2   597     NA 2015-06-15 04:00:00
6       1   10      1   2   798     NA 2015-06-15 05:00:00
7       1   10      1   2  2344     NA 2015-06-15 06:00:00
8       1   10      1   2  3617     NA 2015-06-15 07:00:00
9       1   10      1   2  3669     NA 2015-06-15 08:00:00
10      1   10      1   2  2873     NA 2015-06-15 09:00:00
11      1   10      1   2  2926     NA 2015-06-15 10:00:00
12      1   10      1   2  2928     NA 2015-06-15 11:00:00
13      1   10      1   2  3681     NA 2015-06-15 12:00:00
14      1   10      1   2  4158     NA 2015-06-15 13:00:00 
.......
168 rows in total

我有一个包含 12 个向量的列表。每个向量包含 7 个值。列表的名称是“mean_values” 它看起来像这样:

> mean_values
$X2005_kvish_1_10t
   a        b        c        d        e        f        g 
3496.917 3480.167 3351.917 3382.500 3464.000 2859.417 2348.500 

$X2006_kvish_1_10t
   a        b        c        d        e        f        g 
3439.625 3496.000 3502.875 3546.917 3519.250 2895.167 2333.208 

$X2007_kvish_1_10t
   a        b        c        d        e        f        g 
3326.667 3363.208 3350.708 3466.250 3501.417 2829.083 2345.292 

$X2008_kvish_1_10t
   a        b        c        d        e        f        g 
3440.000 3558.250 3439.167 3562.000 3605.875 2711.958 2276.208 

$X2009_kvish_1_10t
   a        b        c        d        e        f        g 
3334.333 3213.917 3233.250 3281.292 3418.583 2727.000 2138.500 

$X2010_kvish_1_10t
   a        b        c        d        e        f        g 
3233.667 3183.792 3354.458 3323.000 3527.875 2793.500 2232.542 

$X2011_kvish_1_10t
   a        b        c        d        e        f        g 
2747.125 2749.750 2795.750 2755.792 2766.625 2220.000 1687.958 

$X2012_kvish_1_10t
NULL

$X2013_kvish_1_10t
   a        b        c        d        e        f        g 
3421.667 3181.083 3276.583 3419.708 3461.708 2806.708 2139.333 

$X2014_kvish_1_10t
   a        b        c        d        e        f        g 
2910.958 2745.917 2811.708 2886.208 2963.542 2459.292 1865.000 

$X2015_kvish_1_10t
   a        b        c        d        e        f        g 
2869.708 2868.250 2919.292 2808.417 2438.167 1841.875 2929.083 

$X2016_kvish_1_10t
   a        b        c        d        e        f        g 
2848.375 2818.042 2927.833 2976.042 3061.083 2584.667 1884.292 

我想要做的是将每个向量作为一个新列添加到每个表中,但是因为我在每个表中有 168 行代表一整周,所以我只需要将每个向量的第一个值附加到第一个每个表中的行 并且每个向量的第二个值到每个表的第 25 行,每个向量的第三个值到每个表的第 49 行,依此类推,所有向量的值。新列中的其余值将是 NA。

【问题讨论】:

    标签: r list assign


    【解决方案1】:

    如果我理解您想要做什么并且我假设 ldf 是数据框列表,您可以简单地这样做:

    n <- nrow(ldf[[1]])
    
    for (name in names(ldf)) {
      col <- rep(NA_real_, n)
      if (!is.null(mean_values[[name]])) col[seq(1, n, 24)] <- mean_values[[name]]
      ldf[[name]][["mean_values"]] <- col
    }
    

    【讨论】:

    • 我试过了,但有一个错误:` col[seq(1, n, 24)]
    • 它仍然无法正常工作:col[seq(1, n, 24)]
    • 你能提供一个完整的可重现的例子吗?也许将您的数据放在 GitHub 或其他任何地方并将其链接到我。
    • 我可以通过其他方式向您发送文件吗?我在处理 GitHub 时遇到了麻烦
    • 所以请给我你的电子邮件地址,我把相关文件发给你。
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 2015-12-18
    • 2021-07-18
    • 1970-01-01
    相关资源
    最近更新 更多