새로운 dataframe에서 값을 반환 :R이>의 값은, 나는 다음과 같은 형식의 데이터가
structure(list(cat = structure(c(1L, 2L, 3L, 1L, 2L, 2L, 3L,
3L, 3L, 3L, 1L, 2L), .Label = c("A", "B", "C"), class = "factor"),
ID = structure(c(1L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 2L,
3L, 4L), .Label = c("s1", "s10", "s11", "s12", "s2", "s3",
"s4", "s5", "s6", "s7", "s8", "s9"), class = "factor"), val = c(150,
750, 950, 104, 726, 797, 890, 912, 994, 1004, 199, 704),
LWR = c(100, 700, 900, NA, NA, NA, NA, NA, NA, NA, NA, NA
), UPP = c(200, 800, 1000, NA, NA, NA, NA, NA, NA, NA, NA,
NA)), .Names = c("cat", "ID", "val", "LWR", "UPP"), row.names = c(NA,
-12L), class = "data.frame")
보이는 같은 :
cat ID val LWR UPP
1 A s1 150 100 200
2 B s2 750 700 800
3 C s3 950 900 1000
4 A s4 104 NA NA
5 B s5 726 NA NA
6 B s6 797 NA NA
7 C s7 890 NA NA
8 C s8 912 NA NA
9 C s9 994 NA NA
10 C s10 1004 NA NA
11 A s11 199 NA NA
12 B s12 704 NA NA
내가 원하는 무엇 LWR 또는 UPP 값 중 가장 가까운 고양이와 동일한 값을 가지는 val 열의 값을 찾습니다.
cat id val LWR UPP LS NLWR US NUPP
1 A s1 150 100 200 s4 104 s11 199
2 B s2 750 700 800 s12 704 s6 797
3 C s3 950 900 1000 s8 912 s9 994
새로운 coloums (LS 및 NLWR/미국 NUPP)는 단지 새로운 열 이름을 부여, 추출 된 행의 ID와 발스와 동일합니다 : 그것은 원하는 출력을보고 이해하는 것이 아마도 가장 쉬운 방법. 나는 다양한 형태의 "어느"를 사용하여 이것을 실행하려고 시도했지만 데이터를 개혁했지만 운이 없었습니다. 직접 할 수있는 방법이 있습니까, 아니면 항상 여러 단계를 거치게됩니까? 890 912 900에 가깝고 NUPP 대해 동일한 것을
는
왜'cat' = A'val' = 199 인 행이 선택되어 있습니까? 그리고'cat' 값'LWR'과'UPP'가 한 번만 설정되기 때문에 항상 이렇게됩니까? – Beasterfield
그렇습니다. 저는 100에서 200 사이의 값을 특별히 찾고 있다고 언급하는 것을 잊었습니다. 그리고 네, 각 고양이 가치는 하나의 경수로와 하나의 UPP를 가지고 있습니다. 내 실제 데이터는 샘플 3 대신에 약 5,000 개의 다른 고양이를 가지고 있습니다. – MHtaylor