我试图弄清楚如何从数据框中删除所有唯一的行,但如果它有重复,我希望它留在.例如 - 我希望所有列与col1相同:
df<-data.frame(col1=c(rep("a",3),"b","c",rep("d",3)),col2=c("A","B","C",rep("A",3),"B","C"),col3=c(3,3,1,4,4,3,2,1))
df
col1 col2 col3
1 a A 3
2 a B 3
3 a C 1
4 b A 4
5 c A 4
6 d A 3
7 d B 2
8 d C 1
subset(df,duplicated(col1))
col1 col2 col3
2 a B 3
3 a C 1
7 d B 2
8 d C 1
Run Code Online (Sandbox Code Playgroud)
但我希望有1,2,3,6,7,8行,因为它们都有相同的col 1.如何将1和6包括在内?或者,相反,如何删除没有重复的行?
我有一个包含较旧和较新数据的大型数据集.我创建了两个数据框,EarlyYears包含旧数据,LaterYears包含新数据,因此它们具有相同的列.
我想做的是回归早年的数据来确定一个方程并将其应用于晚年以测试方程的强度 - A和B是常数,输入是我正在测试的 - 我改变了它的不同运行代码 - 和Dummy是1是没有输入数据.但是,我想通过其中一个变量的五分位数分割EarlyYears和LaterYears数据,并将EarlyYears的五分之一中找到的等式应用于来自五分之一的LaterYears中的数据.我在R中相当新,到目前为止有:
Model<-data.frame(Date = rep(c("3/31/09","3/31/11"),each = 20),
InputRating = rep(c(1:5), 8), Dummy = rep(c(rep(0,9),1),4),
Y = rep(1,3,5,7,11,13,17,19), A = 1:40,B = 1:40*3+7)
newer<-as.numeric(grep("/11",Model$Date))
later<-as.numeric(grep("/11",Model$Date,invert = TRUE))
LaterYears<-Model[newer,]
EarlyYears<-Model[later,]
newModel<-EarlyYears
DataSet.Input<-data.frame(Date = newModel$Date, InputRating = newModel$InputRating,
Dummy = newModel$Dummy, Y = newModel$Y, A = newModel$A,B = newModel$B)
quintiles<-quantile(DataSet.Input$A,probs=c(0.2,0.4,0.6, 0.8, 1.0))
VarQuint<-findInterval(DataSet.Input$A,quintiles,rightmost.closed=TRUE)+1L
regressionData<-do.call(rbind,lapply(split(DataSet.Input,VarQuint),
FUN = function(SplitData) {
SplitRegression<-lm(Y ~ A + B + InputRating + Dummy, data = SplitData, na.action = na.omit)
c(coef.Intercept = coef(summary(SplitRegression))[1],
coef.A …Run Code Online (Sandbox Code Playgroud)