저는 실험실 실험에서 생성 된 데이터 세트에서 현재 관찰이 두 배가되는 곳 (두 번 측정 됨)에서 작업하고 있습니다.복제 된 행의 의미는 원래의 변수입니다.
내가 관찰 된 개체의 ID
, 결과의 value
,이 객체의 type
하고 (내 말은 할 +120 다른 범주, 문자 및 숫자 변수)를 측정 한 hour
. 여기에 단순화 된 데이터 프레임은 다음과 같습니다
library(dplyr)
A <- c(1,1,2,2,3,3,4)
B <- A*2.5+(rnorm(2,A[A],sd = 0.2))
C <- c("banana","banana","poireau","poireau","melon","melon","kiwi")
D <- c("H1","H2","H3","H4","H5","H6","H7")
df <-data_frame(ID=as.integer(A),value=B,type=factor(C), hour=as.character(D))
df
# A tibble: 7 x 4
ID value type hour
<int> <dbl> <fctr> <chr>
1 1 3.337352 banana H1
2 1 3.398814 banana H2
3 2 5.837352 poireau H3
4 2 5.898814 poireau H4
5 3 8.337352 melon H5
6 3 8.398814 melon H6
7 4 10.837352 kiwi H7
내 목표는 드 계산, 하나 개의 ID 만 하나 개의 값을 유지하지만 여전히 다른 변수를 유지하기 위해 ID에 의한 값의 의미하는 것입니다. 내가 시도한 것은 다음과 같습니다 :
dplyr이 (가) 내 명령에 응답 : 이것은 이중 값을 의미하지만 다른 열을 유지하는 방법은 무엇입니까?
필드의 경우 hour
필드와 마찬가지로 테이블의 첫 번째 값을 유지하려고합니다. 원하는 출력은 다음과 같습니다.
# A tibble: 4 x 4
ID `mean(value)` type hour
<int> <dbl> <fctr> <chr>
1 1 3.368083 banana H1
2 2 5.868083 poireau H3
3 3 8.368083 melon H5
4 4 10.837352 kiwi H7
고마워요!
감사합니다! 내가 130+ 변수에 사용했던 것은 : 'df %> % group_by (ID) %> % mutate_if (is.double, mean) %> % distinct (ID, is.double, .keep_all = TRUE)' –