Как вернуться к старому фрейму данных при удалении вновь добавленного столбца?

0

Проблема

Я объединил большое количество наборов данных в один фрейм данных. Затем я хочу использовать этот большой фрейм данных во всем своем коде. Однако иногда я хочу использовать только один из более мелких ранних наборов данных, но делать это с моим существующим большим фреймом данных. Я чувствую, что он поддерживает порядок в моей глобальной среде, имея только один набор данных.

Тем не менее, всякий раз, когда я удаляю столбцы в надежде, что мой большой фрейм данных вернется к предыдущему набору данных, он сохраняет все строки как дубликаты. См. Ниже, чтобы понять, что я имею в виду:

Реплекс

# Dataframe 1

lawyer <- as.data.frame(letters[1:20])
clients <- as.data.frame(seq(1:20))
location <- as.data.frame(rep(c("urban", "rural"), 10))
df <- cbind(lawyer, clients, location)
colnames(df) <- c("lawyer", "clients", "location")

# Dataframe 2

clients2 <- as.data.frame(rep(seq(1:20),5))
prop_poor <- as.data.frame(rep(seq(0, 0.9, by = 0.1),10))
df2 <- cbind(clients2, prop_poor)
colnames(df2) <- c("clients", "poverty")

# Large dataset

df_final <- left_join(df, df2, by = "clients")
remove(df, df2)


# Trying to get back to Dataframe 1 (to build a graph, for example)

dfx <- df_final %>% select(-poverty)

В приведенном выше примере я хочу, чтобы dfx вернулся к исходному df до того, как я добавил к нему df2. Тем не менее, он по-прежнему показывает 100 строк. Любая помощь будет оценена по достоинству.

Примечание

Причина моего подхода в том, что у меня очень много наборов данных, и моя глобальная среда в конечном итоге заполняется. Вместо этого я объединил их все в хороший большой набор данных и удалил другие, более мелкие, так что теперь моя глобальная среда менее загружена. Затем я хочу использовать подмножества в этом большом наборе данных для построения графиков с помощью ggplot2.

Я не уверен, что это хорошая практика, но мне все же нужно решение моей проблемы.

Спасибо.

Теги:
dataframe
CodeFix

1 ответ

1

Как правило, нет возможности вернуть исходную таблицу, поскольку в большой таблице просто недостаточно информации для ее восстановления.

Но если вы знаете, что исходные данные не имели дубликатов, вы можете просто удалить их:

dfx <- df_final %>%
    select(-poverty) %>%
    distinct()
Поделиться
Источник

Другие вопросы

CodeFix
Цитата дня

"Завидую тестировщикам: все хотят с ними дружить."

Эндрю Таненбаум