질문은 아주 쉽지만 원하는 기능을 구현하는 것은 나에게 너무 어려운 것 같습니다.
n 개의 열을 제외하고는 모두 동일한 data.frame
의 모든 줄을 제공하는 함수가 필요합니다. 다른 말로하면 : 나에게 거의 중복 된 행을 제공하는 함수 (n 개의 항목 만 해당 행에서 다를 수 있음).와일드 카드로 R : duplicated()
Here 데이터가 내 데이터와 매우 흡사합니다.
ulti.dup <- function(x, widlcards = NULL, ...){
if(is.null(wildcards)){
print(which(duplicated(x, ...)))
} else if(!is.numeric(wildcards)){
stop("wildcards has to be the maximum number of not matching columns and though numeric")
} else{
comb <- combn(1:ncol(x), m = wildcards, simplify = FALSE)
dups <- c()
for(col in comb){
dups <- c(dups, which(duplicated(x[, -col], ...)))
}
print(dups[-which(duplicated(dups))])
}
}
그러나, ulti.dup
만 발견 : 나는 그렇게 끝났다 원하는 것을하는 함수를 작성하는
gw <- structure(list(TIME = structure(c(2L, 1L, 2L, 2L, 1L), .Label = c("05.12.2000",
"26.07.2000"), class = "factor"), GAUGE_ID = c(198L, 200L, 198L,
198L, 200L), PH = c(7.22, 7.2, 7.22, 7.22, 7.2), EH = c(100L,
470L, 100L, 100L, 470L), CON = c(595L, 672L, 595L, 595L, 672L
), TEMP = c(9.1, 10, 9.1, 9.1, 10), O2MG = c(0, 3.8, 0, 0.005,
3.8), NH4 = c(0.24, 0.06, 0.24, 0.24, 0.06), NH4N = c(0.19, 0.05,
0.19, 0.19, 0.05), PO4 = c(0.061, 0.031, 0.061, 0.061, 0.031),
OPO4P = c(0.02, 0.01, 0.02, 0.02, 0.01), SAK = c(9.8, 11.3,
9.8, 9.8, 11.3), CL = c(22.76, 18.49, 22.76, 22.76, 18.49
), BR = c(0, 0.06, 0, 0.015, 0.06), NO2 = c(0, 0.06, 0, 0.005,
0.06), NO3 = c(0.02, 46.61, 0.02, 0.015, 46.61), SO4 = c(39.91,
60.17, 39.91, 39.91, 60.17), NA. = c(8.19, 8.34, 8.19, 8.19,
8.34), K = c(3.23, 1.03, 3.23, 3.23, 1.03), MG = c(4.21,
7.82, 4.21, 4.21, 7.82), CA = c(110.72, 115.77, 110.72, 110.72,
115.77), DOC = c(4.67, 7.9, 4.67, 4.67, 7.9), FE2 = c(1.62,
0.12, 1.62, 1.62, 0.12), MN = c(NA, NA, NA, NA, NA), HCO3 = c(5.11,
5.05, 5.11, 5.11, 5.05)), .Names = c("TIME", "GAUGE_ID",
"PH", "EH", "CON", "TEMP", "O2MG", "NH4", "NH4N", "PO4", "OPO4P",
"SAK", "CL", "BR", "NO2", "NO3", "SO4", "NA.", "K", "MG", "CA",
"DOC", "FE2", "MN", "HCO3"), row.names = c(NA, 5L), class = "data.frame")
내 시도 : 내 예를 들어 데이터를 생성하기 위해 데이터의 처음 두 행을 사용 중복 된 행 3과 5는 있지만 행 4는 찾지 못했습니다. wildcards >= 4
에 대한 것입니다.
좀 더 배경 정보에 관심이 누구든지
:의 경우와 같이 좀 샘플링을 공유하는 두 data.frames
를 얻었으나 data.frames
중 하나가 (검출 한계의 절반으로 대체 검출 한계보다 작은 값이 행 4와 5에 대한 예제). 난 그 data.frames
병합하고 모든 중복 samplings (행)을 제거해야합니다.