合并来自不同txt的数据

时间:2012-02-27 15:48:17

标签: r dataframe text-files

我有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 个答案:

答案 0 :(得分:2)

当我包括阅读数据时,我会像这样解决你的问题:

library(plyr)
large_table = ldply(list_src_files, read.table)
write.table(large_table, file = "large_table.txt")

答案 1 :(得分:2)

这里有一些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 :(得分:1)

根据您的上述示例,假设您的列名相同:

    TXT3 <- rbind(TXT1,TXT2)
    write.table(TXT3,file="TXT3.txt")

答案 3 :(得分:0)

读入文件后,请使用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 Data Import/Export Manual