2016-11-16 9 views
0

Итак, у меня есть базовый фреймворк, который содержит длинные строки, разделенные запятой. Я использовал «отдельный» Tidyr для создания новых столбцов.Разделите строку, используя «отдельный» Tidyr в несколько столбцов, а затем создайте новый столбец с графами

Как добавить новый столбец с подсчетом количества новых столбцов для каждого человека, содержащего ответ? (нет НС).

Я полагаю, что столбцы могут быть подсчитаны после того, как они были разделены или раньше, подсчитав количество элементов строки, разделенных запятой?

Любая помощь будет оценена по достоинству. Я хотел бы остаться в Tidyverse и dplyr.

Name<-c("John","Chris","Andy") 

Goal<-c("Go back to school,Learn to drive,Learn to cook","Go back to school,Get a job,Learn a new Skill,Learn to cook","Learn to drive,Learn to Cook") 

df<-data_frame(Name,Goal) 

df<-df%>%separate(Goal,c("Goal1","Goal2","Goal3","Goal4"),sep=",") 

ответ

1

Мы можем попытаться с str_count

library(stringr) 
df %>% 
    separate(Goal,paste0("Goal", 1:4), sep=",", remove=FALSE) %>% 
    mutate(Count = str_count(Goal, ",")+1) %>% 
    select(-Goal) 
# Name    Goal1   Goal2    Goal3   Goal4 Count 
# <chr>    <chr>   <chr>    <chr>   <chr> <dbl> 
#1 John Go back to school Learn to drive  Learn to cook   <NA>  3 
#2 Chris Go back to school  Get a job Learn a new Skill Learn to cook  4 
#3 Andy Learn to drive Learn to Cook    <NA>   <NA>  2 

 Смежные вопросы

  • Нет связанных вопросов^_^