对于我的硕士论文,我试图合并两个文件,它们包含以下内容: 一个人有我的研究对象(海鸥)的指标,另一个有这些鸟的繁殖成功。
然而,它们的格式不同:具有指标的文件已经为育种期的不同阶段采用了两个单独的行,因此个人每年有多行。
另一个繁殖成功的文件没有,每个人每年只有一行,属于这些行的列代表每个繁殖阶段的繁殖参数。
现在我知道我不能直接“合并”#39; Rstudio中的两个文件,所以我想知道如何格式化文件,以便我可以。
我会添加图片以帮助解释: First file Second file
非常感谢你!
答案 0 :(得分:0)
首先应考虑为什么要合并文件。从我所看到的情况来看,您的文件最好保持独立,因为在您的第一个文件中,您正在记录两个阶段的常用指标(标题相同),而在第二个文档中,您正在记录两个阶段的不同指标(标题)是不同的)。
由于第二个文件包含两个阶段的不同标题,因此无法将其转换为第一个文件的类似形式。但是,可以将第一个文件转换为第二个文件的格式,从而允许您组合这两个文件。但是我强烈反对这一点,因为它可能会阻止您以这种方式快速分析数据。
library(ggplot2)
dat <- read.csv("file1.csv")
# This plots a boxplot comparing the evenness of the 2 phases
ggplot(dat, aes(x = as.factor(period), y = evenness)) + geom_boxplot()
但是,如果你坚持,这里的代码是将file1重新格式化为每个条目一行,与file2结合
# One more warning, depending on how you
# want to eventually wrangle your data,
# doing this might make your life more difficult
library(dplyr)
f1 <- read.csv("file1.csv", stringAsFactors = FALSE)
dat1 <- dat[f1$phase == "incubating",]
dat2 <- dat[f1$phase == "chickrearing",]
dat2$phase <- dat1$phase <- NULL
names(dat1) <- c("bird.year", paste0("incubating.", names(dat1)[2:length(names(dat1))]))
names(dat2) <- c("bird.year", paste0("chickrearing.", names(dat2)[2:length(names(dat2))]))
f1.combined <- merge(dat1, dat2, by = "bird.year")
f2 <- read.csv("file2.csv")
f2 <- mutate(f2, bird.year = paste(Individual, year))
combined.files <- merge(f1.combined, f2, by = "bird.year")