изменить ссылку символа на имя информационного кадра - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь изменить команду вставки из класса character в класс, который ссылается на кадры данных в моей среде.

Фреймы данных уже существуют и называются bid1, bid2, bid3 и т. Д. c ...

Запуск этого кода:

for (i in 1:length(bids)) {
  paste("bid", i, sep= "") <- paste("bid", i, sep= "") %>% filter(.[[5]] > 3)
}

Возвращает это:

 Error in UseMethod("filter_") : no applicable method for 'filter_' applied to an object of class "character"

Так, что я должен сделать по-другому, чтобы он ссылался на кадр данных с тем же именем, а не видел его просто как символьный элемент?

1 Ответ

0 голосов
/ 27 марта 2020

Мы можем использовать assign вместо <-

for(i in seq_along(bids)) {
     tmp <- get(paste0("bid", i))
     assign(paste0("bid", i), tmp[tmp[[5]] >3,])

  }

Намного лучше было бы сохранить это значение в list

lst1 <- lapply(mget(ls(pattern = "^bid\\d+$")),  function(x) x[x[[5]] > 3,])

Или если нам нужно обновить исходные объекты

list2env(lst1, .GlobalEnv)

data

bids <- c('bid1', 'bid2')
set.seed(24)
bid1 <- as.data.frame(matrix(sample(0:10, 5 * 10, replace = TRUE), ncol = 5))
bid2 <- as.data.frame(matrix(sample(0:10, 5 * 10, replace = TRUE), ncol = 5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...