Объединить данные из разных TXT - PullRequest
1 голос
/ 27 февраля 2012

У меня есть 20 различных txt, которые имеют одинаковые столбцы с одинаковыми именами, НО разные значения, например,

TXT1
a    b   c   d
1    4   5   6
3    4   5   3

TXT2
a    b   c   d
2    4   8   6
3    5   2   9

как я могу создать новый txt, который будет иметь все значения как из TXT1, так и из TXT2в правильном столбце?

спасибо

Анна

Ответы [ 4 ]

2 голосов
/ 27 февраля 2012

Вот немного магии R, чтобы сделать вашу жизнь очень легкой:

Создайте некоторые данные в формате, который вы описали:

TXT1 <- data.frame(a = 1:4,b = 5:8,c = 9:12)
TXT2 <- data.frame(a = 11:14,b = 15:18,c = 19:22)
TXT3 <- data.frame(a = 21:24,b = 25:28,c = 29:32)
TXT4 <- data.frame(a = 31:34,b = 35:38,c = 39:42)

Сшить это вместе:

x <- ls(pattern = "TXT[[:digit:]]", all.names=TRUE)
do.call(rbind, lapply(x, get))

Результаты:

    a  b  c
1   1  5  9
2   2  6 10
3   3  7 11
4   4  8 12
5  11 15 19
6  12 16 20
7  13 17 21
8  14 18 22
9  21 25 29
10 22 26 30
11 23 27 31
12 24 28 32
13 31 35 39
14 32 36 40
15 33 37 41
16 34 38 42
2 голосов
/ 27 февраля 2012

Когда я включу чтение данных, я решу вашу проблему следующим образом:

library(plyr)
large_table = ldply(list_src_files, read.table)
write.table(large_table, file = "large_table.txt")
1 голос
/ 27 февраля 2012

при условии, что имена ваших столбцов идентичны, в приведенном выше примере:

    TXT3 <- rbind(TXT1,TXT2)
    write.table(TXT3,file="TXT3.txt")
0 голосов
/ 27 февраля 2012

После того, как вы прочитали свои файлы, используйте rbind().

Пример:

dat.in.1 <- read.delim(dat.1)
dat.in.2 <- read.delim(dat.2)
dat.in.3 <- read.delim(dat.3)
dat.in.4 <- read.delim(dat.4)
dat.in.5 <- read.delim(dat.5)

dat.total <- rbind(dat.in.1, dat.in.2, dat.in.3, dat.in.4, dat.in.5)

Вам также следует взглянуть на это: R Руководство по импорту / экспорту данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...