在R中,提取重复测量分散在所有对象的不同行中的数据

时间:2015-10-20 13:55:56

标签: r merge

我有一个格式奇怪的数据集,其中

第1行是在访问1时收集的主题1的性别和收入数据

第2行是在第2次访问时收集的受试者1的糖尿病和高血压病史数据

第3行是在访问1时收集的主题2的性别和收入数据

第4行是在第2次访问时收集的受试者2的糖尿病和高血压病史数据

等等

我使用R并想要组合每个主题的所有数据,以便新数据中有2行,第1行有主题1的性别收入糖尿病和高血压数据,第2行有主题2的数据。我可以得到一些帮助请?

1 个答案:

答案 0 :(得分:0)

拆分然后合并。

(dat <- read.table("000.txt", head=F, as.is=T))
#    V1       V2     V3
# 1  Bob   Female  22445
# 2  Bob diabeteY HyperN
# 3 Lucy     Male  12345
# 4 Lucy diabeteN HyperY
dat01 <- dat[seq(1, nrow(dat), by=2),]
names(dat01) <- c("name", "gender","income")
dat01
#  name gender income
# 1  Bob Female  22445
# 3 Lucy   Male  12345
dat02 <- dat[seq(2, nrow(dat), by=2),]
names(dat02) <- c("name", "diabet", "hyper")
dat02
#  name   diabet  hyper
# 2  Bob diabeteY HyperN
# 4 Lucy diabeteN HyperY

(dat.final <- merge(dat01, dat02, by="name"))
#  name gender income   diabet  hyper
# 1  Bob Female  22445 diabeteY HyperN
# 2 Lucy   Male  12345 diabeteN HyperY