【发布时间】:2012-08-01 10:15:21
【问题描述】:
在我的数据框中,有一些行具有相同的 ID,但测试年份和年龄的值不同。我想折叠重复的行并为不同的值创建新列。
我是 R 的新手,已经为此苦苦挣扎了一段时间。
这是数据框:
>df id 项目 testyr1 testyr2 age1 age2 1 16S AS 2008 不适用 29 不适用 2 32S AS 2004 不适用 30 不适用 3 37S 不适用 2011 不适用 36 4 50S AS 2004 不适用 23 不适用 5 50S AS 1998 不适用 16 不适用 6 55S AS 2007 不适用 28 不适用testyr1 应该有最早的年份,testyr2 应该有最晚的年份。 age1 应该是较小的年龄,age2 应该是较大的年龄。
输出应该是:
id 项目 testyr1 testyr2 age1 age2 1 16S AS 2008 不适用 29 不适用 2 32S AS 2004 不适用 30 不适用 3 37S 不适用 2011 不适用 36 4 50S AS 1998 2004 16 23 6 55S AS 2007 不适用 28 不适用我试图写一个循环,但不知道如何结束它:
df.undup <- c()
df.undup <- c()
for (i in 1:nrow(df)){
if i == i+1
df$testyr1 != NA {
testyr2 = max(testyr1)
testyr1 = min(testyr1)
nage2 = max(nage1)
nage1 = min(nage1)
}
else{
testyr2 = max(testyr2)
testyr1 = min(testyr2)
nage2 = max(nage2)
nage1 = min(nage2)
}
}
任何帮助将不胜感激。
【问题讨论】:
-
你只能有两个副本?
标签: r