在我的数据框中,有一些行具有相同的 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)
}
}
任何帮助将不胜感激。