단정 한 tibble 만들 dplyr 사용 방법 :이벤트의 여러 인스턴스를 수집하고 나는이 유사한 데이터 세트가
library(tidyverse)
df <- tibble(
subjid = 1:5,
event_1 = c("Watery eyes", # Event number 1
"Sore throat",
"Vomiting",
"Gastroenteritis viral",
"Dry Mouth"),
start_date_1 = as.Date("2017-01-02") + 0:4,
stop_date_1 = as.Date("2017-01-03") + 0:4,
severity_1 = 1,
related_to_drug_1 = 0,
event_2 = c("Nausea", # Event number 2
"Dizziness",
"Cough",
"Disorientation",
"Diarrhea"),
start_date_2 = as.Date("2017-02-02") + 0:4,
stop_date_2 = as.Date("2017-02-03") + 0:4,
severity_2 = 2,
related_to_drug_2 = 1,
event_3 = c("Eczema", # Event number 3
"Sinusitis",
"Abdominal discomfort",
"Muscle spasms",
"Nasopharyngitis"),
start_date_3 = as.Date("2017-03-02") + 0:4,
stop_date_3 = as.Date("2017-03-03") + 0:4,
severity_3 = 2,
related_to_drug_3 = 1
)
df
# A tibble: 5 × 16
subjid event_1 start_date_1 stop_date_1 severity_1 related_to_drug_1 event_2 start_date_2 stop_date_2 severity_2 related_to_drug_2 event_3
<int> <chr> <date> <date> <dbl> <dbl> <chr> <date> <date> <dbl> <dbl> <chr>
1 1 Watery eyes 2017-01-02 2017-01-03 1 0 Nausea 2017-02-02 2017-02-03 2 1 Eczema
2 2 Sore throat 2017-01-03 2017-01-04 1 0 Dizziness 2017-02-03 2017-02-04 2 1 Sinusitis
3 3 Vomiting 2017-01-04 2017-01-05 1 0 Cough 2017-02-04 2017-02-05 2 1 Abdominal discomfort
4 4 Gastroenteritis viral 2017-01-05 2017-01-06 1 0 Disorientation 2017-02-05 2017-02-06 2 1 Muscle spasms
5 5 Dry Mouth 2017-01-06 2017-01-07 1 0 Diarrhea 2017-02-06 2017-02-07 2 1 Nasopharyngitis
# ... with 4 more variables: start_date_3 <date>, stop_date_3 <date>, severity_3 <dbl>, related_to_drug_3 <dbl>
그러나, 데이터의 100 "이벤트"를 통해 더 많은 행이를/일련의 열. 데이터 프레임은 부작용 및 부작용이있는 각 주제에 대한 행으로 구성되며, 해당 속성은 밑줄로 명명 된 열에 나열되어 어떤 이벤트가 속해 있는지 나타냅니다. 이것은 각각의 부작용에 대해 하나 개의 행을 것
# A tibble: 15 × 7
subjid event_number event start_date stop_date severity related_to_drug
<int> <int> <chr> <date> <date> <int> <int>
1 1 1 Watery eyes 2017-01-02 2017-01-03 1 0
2 2 1 Sore throat 2017-01-03 2017-01-04 1 0
3 3 1 Vomiting 2017-01-04 2017-01-05 1 0
4 4 1 Gastroenteritis viral 2017-01-05 2017-01-06 1 0
5 5 1 Dry Mouth 2017-01-06 2017-01-07 1 0
6 1 2 Nausea 2017-02-02 2017-02-03 2 1
7 2 2 Dizziness 2017-02-03 2017-02-04 2 1
8 3 2 Cough 2017-02-04 2017-02-05 2 1
9 4 2 Disorientation 2017-02-05 2017-02-06 2 1
10 5 2 Diarrhea 2017-02-06 2017-02-07 2 1
11 1 3 Eczema 2017-03-02 2017-03-03 3 2
12 2 3 Sinusitis 2017-03-03 2017-03-04 3 2
13 3 3 Abdominal discomfort 2017-03-04 2017-03-05 3 2
14 4 3 Muscle spasms 2017-03-05 2017-03-06 3 2
15 5 3 Nasopharyngitis 2017-03-06 2017-03-07 3 2
하고, 열은 특정 이벤트에 대한 특성을 식별 : I는 같은 tibble에 이러한 이벤트를 수집하기 위해 tidyr 사용하고 싶습니다.
감사합니다; 이것은 내가 필요한 것입니다! 나는 추가했다 : %돌연변이 (start_date = as_date (as.numeric (start_date))) %> % mutate (stop_date = as_date (as.numeric (stop_date))) 그리고 필요에 따라 작동한다. 다시 한 번 감사드립니다 !!!! – jsly
@jsly dplyr tip : 'mutate'를 한 번 호출하면 여러 변경 사항을 적용 할 수 있습니다. 예를 들면 : mutate (A = as_date (A), B = as_date (B)). 적절한 들여 쓰기를 사용하면 덜 복잡해질 수 있습니다. (또는 더 많이) –