Как изменить фрейм данных, который не может быть вызван напрямую? - PullRequest
0 голосов
/ 04 октября 2019

Я создаю функцию для нескольких фреймов данных автоматически. Как я могу вызвать эти data.frames, чтобы изменить их?

Например, скажем, я создал данные, для которых каждый элемент должен стать кадром данных, например:

assign(paste0("d","f"),c(tree,fox,river))

Тогда явозьмите элемент из списка и используйте его для присвоения имени фрейму данных.

assign(paste(get(paste0("d","f"))[1]),as.data.frame(c(1,2,3))

, так что теперь, если я сделаю:

get(paste(get(paste0("d","f"))[1]))

, он возвращает фрейм данных с 1,2,3

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

get(paste(get(paste0("d","f"))[1]))[1] <- 4

#So that now if i do

get(paste(get(paste0("d","f"))[1]))

возвращало фрейм данных с 4,2,3

1 Ответ

2 голосов
/ 04 октября 2019

Лучше не создавать несколько объектов в глобальной среде. Если он уже создан, загрузите их в list и выполните все изменения / преобразования / мутации и т. Д. В list. Было бы проще читать / писать в list, а не искать эти объекты, плавающие в глобальном env

lapply(mget(paste0("df", 1:3)), function(x) {x[[1]] <- 4; x})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...