Как я могу сгруппировать по одной переменной с точки зрения статуса другой переменной в продольной ситуации в R? - PullRequest
0 голосов
/ 14 ноября 2018

Я новичок в R, поэтому, пожалуйста, будьте осторожны со мной ... У меня есть некоторые продольные данные, которые выглядят как this

По сути, я пытаюсь найти способ получить таблицу с: а) количеством уникальных дел, в которых есть все полные данные, и б) количеством уникальных дел, в которых есть хотя бы одна неполная или отсутствующая информация. Конечные результаты в идеале были бы

this

df<- df %>% group_by(Location)
df1<- df %>% group_by(any(Completion_status=='Incomplete' | 'Missing'))

1 Ответ

0 голосов
/ 15 ноября 2018

Не уверен насчет того, что вы хотите, потому что кажется, что между вашим запросом и желаемым выводом есть что-то непоследовательное, однако давайте попробуем, кажется, вам нужна своего рода таблица частот, которой вы можете управлять с помощью основного R. В нижней части ответа вы можете найти некоторые данные, аналогичные вашим.

# You have two cases, the Complete, and the other, so here a new column about it:
data$case <- ifelse(data$Completion_status =='Complete','Complete', 'MorIn')

# now a frequency table about them: if you want a data.frame, here we go
result <- as.data.frame.matrix(table(data$Location,data$case))

# now the location as a new column rather than the rownames
result$Location <- rownames(result)

# and lastly a data.frame with the final results: note that you can change the names
# of the columns but if you want spaces maybe a tibble is better 
result <- data.frame(Location = result$Location,
                     `Number.complete` = result$Complete,
                     `Number.incomplete.missing` = result$MorIn)

result
     Location Number.complete Number.incomplete.missing
1      London               0                         1
2 Los Angeles               0                         1
3       Paris               3                         1
4     Phoenix               0                         2
5     Toronto               1                         1

Или, если вы предпочитаете цепочку dplyr:

data %>%
mutate(case = ifelse(data$Completion_status =='Complete','Complete', 'MorIn')) %>%
do( as.data.frame.matrix(table(.$Location,.$case))) %>%
mutate(Location = rownames(.)) %>%
select(3,1,2) %>%
`colnames<-`(c("Location","Number of complete ", "Number of incomplete or"))
     Location Number of complete  Number of incomplete or
1      London                   0                       1
2 Los Angeles                   0                       1
3       Paris                   3                       1
4     Phoenix                   0                       2
5     Toronto                   1                       1

С данными:

# here your data (next time try to put them in an usable way in the question)
    data <- data.frame( ID = c("A1","A1","A2","A2","B1","C1","C2","D1","D2","E1"),
                        Location = c('Paris','Paris','Paris','Paris','London','Toronto','Toronto','Phoenix','Phoenix','Los Angeles'),
                        Completion_status = c('Complete','Complete','Incomplete','Complete','Incomplete','Missing',
                                 'Complete','Incomplete','Incomplete','Missing'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...