2017-07-25 56 views
0

我有一个包含12个表的列表。他们都看起来几乎相同。其中一个表如下所示:将向量列表插入到R中的多个表中

$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。

回答

0

如果我理解你想要做什么,我认为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 
} 
+0

我试过了,但有一个错误:'在山坳错误[SEQ( 1,n,24)] < - mean_values.1_10t [[name]]: 替换长度为零' –

+0

您是否在编辑后尝试过? –

+0

它仍然无效:col [seq(1,n,24)] < - mean_values.1_10t [[name]]中的错误: 替换长度为零,此外:警告消息: 1:In col [seq( 1,n,24)] < - mean_values.1_10t [[name]]: 要替换的项目数不是替换长度的倍数 –