我是R的新手,我有一个很长的数据集,可能是不同变量中的一些重复值(日期),我想评估两个或多个变量(如果可能)是否相等。
我的数据是这样的:
Id date1 date2 date3 date25
1 17/10/2002 17/10/2002 25/01/2008 25/01/2008
2 13/04/2009 13/04/2009
3 07/02/2008
4 24/11/2006 09/06/2010 09/06/2010
我想为每个人确定哪些变量相等以及哪些变量不相同。我尝试过使用same(),all()和其他函数,但由于我的数据集有超过20k的观察结果,因此很难使用它。
目前重复似乎有效,但它并不是我想要的,也许我做错了什么,这就是我尝试过的:
mutate(mydata, newv=duplicated(mydata))
mydata是数据帧的子集,仅包含ID和所有日期变量。这会在末尾添加一列,值都是FALSE,但我知道有些值相等(不是在所有变量中),我认为它可能与变量中的缺失值有关。
我想要的输出是这样的:
Id date1 date2 date3 date25
1 17/10/2002 25/01/2008
2 13/04/2009
3 07/02/2008
4 24/11/2006 09/06/2010
有人有任何建议吗?
谢谢!
答案 0 :(得分:2)
这似乎是apply
的工作。这是一个可能的解决方案
mydata2 <- as.data.frame(t(apply(mydata, 1, function(x){temp <- unique(x);
c(temp, rep("", length(x) - length(temp)))})))
names(mydata2) <- names(mydata)
mydata2
# Id date1 date2 date3 date25
# 1 1 17/10/2002 25/01/2008
# 2 2 13/04/2009
# 3 3 07/02/2008
# 4 4 24/11/2006 09/06/2010