2016-11-16 25 views
0

したがって、以下のような基本的なデータフレームにコンマで区切られた長い文字列が含まれています。Tidyrの "separate"を複数の列に分割してから、Countで新しい列を作成する

答えを含む人物ごとにいくつの新しい列があるかを示す新しい列を追加するにはどうすればよいですか? (NAはありません)。

コンマで区切られた文字列要素の数を数えて、列を区切った後、または前に数えたとします。

ご協力いただければ幸いです。私は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 
関連する問題