현재 다음과 같은 데이터 프레임이 있습니다.
tree cookie age
C1T1 A 113
C1T1 B 108
C1T1 C 97
C1T2 A 133
C1T2 B 110
C1T2 C 100
나는 각 쿠키의 주어진 나이로 각 나무의 최대 나이를 빼고 싶습니다 (따라서 C1T1의 113, 108, 97에서 113을 빼고 C1T2에서 133, 110 및 100에서 133을 빼십시오). 그런 다음 새 값을 동일한 데이터 프레임의 열로 저장하고 싶습니다. 따라서 다음과 같이 보일 것입니다.
tree cookie age new_age
C1T1 A 113 0
C1T1 B 108 5
C1T1 C 97 16
이를 수행하는 방법에 대한 조언을 주시면 감사하겠습니다!
우리는의를 사용할 수있다 mutate
'나무'즉 (차이를 가지고에 의해 그룹화 한 후 새로운 coumn을 만들 수 -
의) max
'연령'과 '나이'각 값의이 'new_age'을 만들
library(dplyr)
df1 <- df1 %>%
group_by(tree) %>%
mutate(new_age = max(age) - age)
-산출
df1
# A tibble: 6 x 4
# Groups: tree [2]
# tree cookie age new_age
# <chr> <chr> <int> <int>
#1 C1T1 A 113 0
#2 C1T1 B 108 5
#3 C1T1 C 97 16
#4 C1T2 A 133 0
#5 C1T2 B 110 23
#6 C1T2 C 100 33
또는 base R
와ave
df1$new_age <- with(df1, ave(age, tree, FUN = max) - age)
df1 <- structure(list(tree = c("C1T1", "C1T1", "C1T1", "C1T2", "C1T2",
"C1T2"), cookie = c("A", "B", "C", "A", "B", "C"), age = c(113L,
108L, 97L, 133L, 110L, 100L)), class = "data.frame", row.names = c(NA,
-6L))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다