Итак, вот ситуация:

У меня есть несколько версий одной и той же электронной таблицы - каждая из них имеет одинаковые метки строк и столбцов.

Разница между любыми двумя заданными электронными таблицами заключается в том, что данные в одной электронной таблице не должны быть в другой (но иногда это может происходить).

Есть ли способ объединить их все в "главную копию" (или просто пустую версию) электронной таблицы? (в основном, используя данные из разных версий этой таблицы для заполнения основной)

Копирование очень утомительно и не позволяет копировать блоки строк, если нумерация строк не является непрерывной. (Например, строки 1, 2, 3, 6 находятся в блоке, но строки 4 и 5 просто не существуют.)

Идеи? Поиск в Google не обнаружил ничего, что могло бы иметь прямое отношение к этой проблеме.

2 ответа2

1

Отсюда:

Чтобы объединить файлы Microsoft Excel вместе, лучше всего сначала сохранить их как файлы CSV. Откройте файлы Excel и в строке меню выберите Файл, Сохранить как. В раскрывающемся списке Тип файла выберите CSV (с разделителями-запятыми) из списка.

Сделайте это для каждого файла Excel, который вы хотите объединить, затем поместите все файлы CSV в одну папку. Для простоты поместите их в папку в корне диска C: (например, c:\csvfiles).

Откройте командную строку Windows и перейдите к папке, содержащей файлы CSV. Введите dir, чтобы просмотреть файлы в папке и убедиться, что все файлы есть.

Введите приведенную ниже команду, чтобы объединить все файлы CSV в папке в новый файл CSV под названием «newfile.csv» (можно использовать любое имя).

скопировать * .csv newfile.csv

После создания нового файла откройте новый файл CSV в Microsoft Excel и сохраните его как файл Excel.

1

Я не знаю, как сделать это с помощью Excel. Если вы сохраните файл в формате CSV, это очень легко сделать в R.

file1 <- read.csv("file1.csv", header=TRUE, nrows=50000) # read the file into memory
file2 <- read.csv("file2.csv", header=TRUE, nrows=50000)
file3 <- read.csv("file3.csv", header=TRUE, nrows=50000)

merge12 <- merge(file1, file2, all=TRUE)                 # merge the files
final <- merge(merge12, file3, all=TRUE)

write.csv(final, "merged-data.csv", quote=FALSE, row.names=FALSE) # save the output as CSV

Когда у вас есть выход CSV, вы можете импортировать его обратно в Excel, сохранить как XLSX, и вы уже в пути.

В read.csv() nrows - это способ ограничения объема памяти, выделяемой для этих данных. Я обычно округляю до следующей 1000 (поэтому, если в вашем файле 1200 строк, я бы поставил 2000). Это не обязательно, но я считаю, что это помогает с производительностью R, если вы работаете с большим количеством данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .