我有五个由R
程序生成的文本文件(每个文件都有标题),这些文件要组合成一个文件。我使用rbind
组合了它们,我的问题是当我将它们组合起来时,结果输出在每个文件的末尾附加了标题,例如,
如果标题是假设的
Combine Resultant file
A B C D
1 3 5 7 ------------> Text file1
6 9 0 3
A B C D
1 3 6 7 ------------> Text file 2
5 7 8 3
and so on....
而不是我希望输出文件在第1行只有一个标题 所以该文件应如下所示:
Combine Resultant file
A B C D
1 3 5 7 ------------> Text file1
6 9 0 3
1 3 6 7 ------------> Text file 2
5 7 8 3
and so on....
谁能告诉我怎么做? 我的代码是:
S1 <- read.table("C:/Simulation_Results/sim_1_200.txt",sep=";",header= TRUE);
S2 <- read.table("C:/Simulation_Results/sim_201_400.txt", sep=";",header= TRUE);
S3 <- read.table("C:/Simulation_Results/sim_401_600_b.txt", sep=";",header= TRUE);
S4 <- read.table("C:/Simulation_Results/sim_601_800.txt", sep=";",header= TRUE);
S5 <- read.table("C:/Simulation_Results/sim_901_1000.txt",sep=";",header= TRUE);
S6 <- read.table("C:/Simulation_Results/simulations_801_900.txt",sep=";",header= TRUE);
options(max.print=28.5E6);
S7 <- rbind(S1,S2,S3,S4,S5,S6)
write.table(S7, file="C:/Simulation_Results/simulation_1_1000.txt", sep=";",
row.names=TRUE, col.names=FALSE, quote = FALSE);
谢谢!
答案 0 :(得分:1)
这听起来像是一个不正确的导入。您应该提供示例数据。无论如何,不要使用read.table("some.file", header=TRUE, sep=";")
,而是尝试read.csv2
,因为它有header=TRUE
和sep=";"
作为默认参数。
而是rbind
,为什么不使用merge
?
答案 1 :(得分:0)
是;您的输入数据与读取功能不匹配存在问题,并且您正在使用错误的sep参数读取数据。我认为您需要跳过一行才能达到标题所在的位置。试试这个:
S1 <- read.table("C:/Simulation_Results/sim_1_200.txt", header= TRUE, skip=1)
S2 <- read.table("C:/Simulation_Results/sim_201_400.txt", skip=1, header= TRUE)
S3 <- read.table("C:/Simulation_Results/sim_401_600_b.txt", skip=1 , header= TRUE)
S4 <- read.table("C:/Simulation_Results/sim_601_800.txt", skip=1, header= TRUE)
S5 <- read.table("C:/Simulation_Results/sim_901_1000.txt", skip=1 , header= TRUE)
S6 <- read.table("C:/Simulation_Results/simulations_801_900.txt", skip=1, header= TRUE)
然后像以前一样继续。 sep =“;”阻止了空白区域被识别,并且在引导线中有一些东西导致您的标题不能转换为列名。
答案 2 :(得分:0)
跟进DWin:怎么样
startvals <- c(1,201,401,601,801,901)
endvals <- c(startvals[-1]-1,1000)
fns <- paste("C:/Simulation_Results/",startvals,"_",endvals,".txt",sep="")
## I'm assuming for the moment that your S6 file is *not* named differently from the others
S <- lapply(fns, read.csv2, skip=1)
S_comb <- do.call(rbind,S)
如果您的模拟文件以特定方式命名,以便您可以使用list.files(pattern =“[some regular expression]”)识别它们,那么您可以这样开始......