小编use*_*563的帖子

删除所有唯一行

我试图弄清楚如何从数据框中删除所有唯一的行,但如果它有重复,我希望它留在.例如 - 我希望所有列与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包括在内?或者,相反,如何删除没有重复的行?

r duplicates dataframe

6
推荐指数
2
解决办法
4270
查看次数

R - 拆分数据,回归并将方程应用于新的拆分数据集

我有一个包含较旧和较新数据的大型数据集.我创建了两个数据框,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)

split r apply

5
推荐指数
1
解决办法
2294
查看次数

标签 统计

r ×2

apply ×1

dataframe ×1

duplicates ×1

split ×1