R: добавить разные значения в столбцы в списке фреймов данных - PullRequest
3 голосов
/ 19 августа 2011

Если у меня есть список вроде:

list <- list( "1" = data.frame(time=1:3, temp = sample(11:13)),
              "3" = data.frame(time=1:3, temp = sample(11:13)))

list

$`1`
  time temp
1    1   11
2    2   12
3    3   13

$`3`
  time temp
1    1   11
2    2   12
3    3   13

Теперь я хочу добавить значение коррекции в столбцы temp, +1 для фрейма данных 1 и -1 для фрейма данных 3, поэтому результат будет:

$`1`
  time temp
1    1   12
2    2   13
3    3   14

$`3`
  time temp
1    1   10
2    2   11
3    3   12

Давайте дополнительно предположим, что у меня есть несколько из этих списков, где иногда могут отсутствовать кадры данных 3 или 1 или даже может быть включен кадр данных 2, для которых потребуется собственный поправочный коэффициент ... Я попробовал странные вещи для датафрейма 1:

list <- lapply(list, function(x)   {x <- x$"1"$temp-1;x})

или

list <- lapply(list, function(x)   {x <- x[x$temp+1,];x})

также пытался добавить seq_along для другого кадра данных в списке ... ничего не работает, может быть, потому что я не совсем понимаю, как работает синтаксис ...

1 Ответ

2 голосов
/ 19 августа 2011

Я изменил имя структуры данных на dflist.Просто неправильно называть список «списком».Вам также понадобится некоторая структура данных для добавления соответствующих поправочных коэффициентов, поэтому давайте установим такую ​​же, как у "dflist":

dflist <- list( "1" = data.frame(time=1:3, temp = sample(11:13)),
              "3" = data.frame(time=1:3, temp = sample(11:13)))

corrlist <- list("1" = 1, "3"=-1) 

# Replaced lapply with for loop
for( nam in names(dflist)) {
        dflist[[nam]]['temp'] <- dflist[[nam]]['temp'] +corrlist[[nam]]
                            }
 dflist
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...