열 병합 및 내용 알파벳순 [중복]

Dec 02 2020

issuesdata더 큰 프레임에서 만든 라는 데이터 프레임이 있습니다.clean.data

issue1 <- as.vector(clean.data$issue1) issue2 <- as.vector(clean.data$issue2)
issue3 <- as.vector(clean.data$issue3)
issuesdata <- data.frame(issue1, issue2, issue3)

issuesdata %>% dplyr::slice(10:15)
          issue1      issue2      issue3
1       economic        <NA>        <NA>
2       economic unification        <NA>
3       economic        <NA>        <NA>
4 transportation    aviation        <NA>
5        justice        <NA>        <NA>
6        slavery    economic humanrights

두 가지 목표가 있습니다.

  1. 한 문자열에서 모든 문제를 포함하는 네 번째 열이 있다는 것을 함께 이들과 열 병합 (열 이름 : allissues)
  2. 의 문제 텍스트 allissues는 알파벳순입니다.

예를 들어,의 행 2 allissues는 양식에 남아 economic unification있지만 하나의 문자열이됩니다. 행 4는 Aviation Transportation이고 행 6은 economic humanrights slavery입니다.

어떻게해야합니까?

답변

1 RonakShah Dec 02 2020 at 13:01

행 단위로 NA 값을 삭제하고 정렬 한 다음 함께 붙여 넣습니다.

기본 R에서 :

issuesdata$combine <- apply(issuesdata, 1, function(x) 
                            toString(sort(na.omit(x))))

또는 dplyr:

library(dplyr)

issuesdata %>%
  rowwise() %>%
  mutate(combine = toString(sort(na.omit(c_across()))))

#  issue1         issue2      issue3      combine_data                  
#  <chr>          <chr>       <chr>       <chr>                         
#1 economic       NA          NA          economic                      
#2 economic       unification NA          economic, unification         
#3 economic       NA          NA          economic                      
#4 transportation aviation    NA          aviation, transportation      
#5 justice        NA          NA          justice                       
#6 slavery        economic    humanrights economic, humanrights, slavery