나는 일반적으로 R 및 프로그래밍 / 스크립팅에 상당히 익숙합니다 (따라서 SO). 질문이 완벽한 스타일이 아니라면 저를 용서하십시오. 고급 R- 사람들의 "어휘"가 부족할 수도 있습니다. :)
내가 원하는 것은 공통 식별자를 공유하는 데이터 프레임의 다른 모든 데이터에서 데이터 프레임 행의 값을 빼는 것입니다. R에 내장 된 Theoph 데이터 세트를 찾았습니다.이 데이터 세트를 사용하여 내가 원하는 작업을 더 자세히 설명 할 수 있습니다 (이 특정 데이터 세트에 대해 생물학적으로 의미가 없지만 실제 데이터를 게시하는 것보다 더 쉽습니다).
다른 모든 conc 값에서 시간 0.00에 속하는 conc 값을 빼고 싶습니다. 그리고 이것은 각 주제에 대해 개별적으로 수행되어야합니다. 저는 먼저 한 피험자의 데이터 만 추출하여 이것을 시도했습니다. 이것은 아래 코드를 사용하여 작동합니다.
# using a part (only one subject) of the built-in Theoph dataset
test2 <- subset(Theoph, Theoph$Subject=="1")
test2 <- mutate(test2, diffconc = conc - subset(test2$conc, test2$Time==0.00))
이제 모든 주제에 대해 동일한 작업을 수행하고 싶습니다. dplyr의 group_by 함수를 사용하여 주제별로 그룹화 한 다음 mutate ()와 결합 해 보았습니다. 아래 참조 :
# trying it with the whole built-in Theoph dataset (for every subject individually)
Theoph %>% group_by(Subject) %>% mutate(diffconc = conc - subset(Theoph$conc, Theoph$Time==0.00)) -> test3
그러나 이것은 내가 예상 한대로 작동하지 않습니다. 주제별로 올바르게 색인화하는 방법을 모르겠습니다.
이 mutate 문에서 :
Theoph %>%
group_by(Subject) %>%
mutate(diffconc = conc - subset(Theoph$conc, Theoph$Time==0.00))
당신은 subset
전체에서 작동 Theoph
하여 우회 dataframe group_by
문 :이 0 == 시간의 모든 인스턴스를 발견 그래서뿐만 아니라 각 주제 내에서 전체 dataframe 0 == 시간을 검색합니다.
이것이 단일 주제를 추출 할 때 작동하지만 (정확히 Time == 0 인스턴스가 하나 있음) 다음과 같은 코드를 사용할 때는 작동하지 않는 이유 group_by
입니다.
다음은 각 주제에 대해 항상 정확히 하나의 Time == 0이 있다고 가정하면 작동합니다.
Theoph %>%
group_by(Subject) %>%
mutate(diffconc = conc - conc[Time==0])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다