2017-07-25 54 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]]: 要替換的項目數不是替換長度的倍數 –