내가 dataframe 다음 한 고유하지 않은 :이 dataframe에 다음 코드를 적용 할 때컷() 오류 - '나누기'
a
ID a.1 b.1 a.2 b.2
1 1 40.00 100.00 NA 88.89
2 2 100.00 100.00 100 100.00
3 3 50.00 100.00 75 100.00
4 4 66.67 59.38 NA 59.38
5 5 37.50 100.00 NA 100.00
6 6 100.00 100.00 100 100.00
가 :
이temp <- do.call(rbind,strsplit(names(df)[-1],".",fixed=TRUE))
dup.temp <- temp[duplicated(temp[,1]),]
res <- lapply(dup.temp[,1],function(i) {
breaks <- c(-Inf,quantile(a[,paste(i,1,sep=".")], na.rm=T),Inf)
cut(a[,paste(i,2,sep=".")],breaks)
})
컷() 함수가 있습니다 오류 :
Error in cut.default(a[, paste(i, 2, sep = ".")], breaks) :
'breaks' are not unique
그러나 동일한 코드가 비슷한 dataframe에 완벽하게 잘 작동합니다
varnames<-c("ID", "a.1", "b.1", "c.1", "a.2", "b.2", "c.2")
a <-matrix (c(1,2,3,4, 5, 6, 7), 2,7)
colnames (a)<-varnames
df<-as.data.frame (a)
ID a.1 b.1 c.1 a.2 b.2 c.2
1 1 3 5 7 2 4 6
2 2 4 6 1 3 5 7
res <- lapply(dup.temp[,1],function(i) {
breaks <- c(-Inf,quantile(a[,paste(i,1,sep=".")], na.rm=T),Inf)
cut(a[,paste(i,2,sep=".")],breaks)
})
res
[[1]]
[1] (-Inf,3] (-Inf,3]
Levels: (-Inf,3] (3,3.25] (3.25,3.5] (3.5,3.75] (3.75,4] (4, Inf]
[[2]]
[1] (-Inf,5] (-Inf,5]
Levels: (-Inf,5] (5,5.25] (5.25,5.5] (5.5,5.75] (5.75,6] (6, Inf]
[[3]]
[1] (5.5,7] (5.5,7]
Levels: (-Inf,1] (1,2.5] (2.5,4] (4,5.5] (5.5,7] (7, Inf]
왜이 오류가 발생 했습니까? 어떻게 고칠 수 있습니까? 감사합니다. 열 b.1
, a.2
및 b.2
에 대한 데이터 분위수 값이 어떤 수준에 대해 동일하기 때문에
고맙습니다, Didzis Elferts! 모든 것이 이제 분명합니다. – DSSS