R : 추출 된 문자열을 분리 된 문자로 하나의 열에 저장할 수 있습니까?

rocknRrr

주석 줄의 문장을 기반으로 사람들에게 수업을 할당해야한다고 가정 해 보겠습니다. (실제 데이터는 이것보다 더 복잡하고 단순화했습니다) 그래서 remathces (), gsub () 및 gregexpr ()과 함께 정규식을 사용하여 데이터에서 주석 문장에서 문자열을 추출했습니다. 그런 다음 목록을 열에 저장하고 아래와 같이 문자로 결합했습니다.

>cbind.data.frame(level,software,month,stringsAsFactors = FALSE) 

   level                         software             month
1  c("beginner1","beginner2")    c++                  Dec       
2                      NA        Java                 Jan       
3             "beginner3"        NA                   May   
4         "intermediate2"        NA                   NA      
5                      NA        Matlab               Mar    
6             "advanced1"        c("java","c++")      Jul     

모든 문자를 하나의 열로 하위 집합하고 싶습니다.

-목록 c ( "beginner1", "beginner2")를 "beginner1", "beginner2"로 나누기

-NA 하락

-다음과 같이 캐릭터로 남아 있음

  newcol
 "beginner1","beginner2","c++","Dec" 
 "Java","Jan" 
 "beginner3", "May"
 "intermediate2" 
 "Matlab", "Mar"    
 "advanced1","java","c++","Jul"  

그러나 제가 합치면 하나의 캐릭터로 합쳐졌습니다.

> newcol<-unite(combined, newcol, 1:ncol(combined), remove=TRUE, sep = ",")

 "beginner1,beginner2,c++,Dec"  
 "Java,Jan" 
 "beginner3, May"
 "intermediate2" 
 "Matlab, Mar"    
 "advanced1,java,c++,Jul"  

여러 문자를 분리 된 문자로 하나의 열에 저장할 수 있습니까?

ThomasIsCoding

다음은 사용하는 기본 R 솔루션입니다.

f <- Vectorize(function(u) {
  z <- unlist(regmatches(u,gregexpr('\".*?\"',u,perl = T)))
  if (length(z)> 0) {
    r <- gsub('\"',"",z)
  } else {
    r <- u
  }
  r
})

df$newcol <- apply(df,1,function(x) f(na.omit(x)))

그런

> df
                       level        software month                         newcol
1 c("beginner1","beginner2")             c++   Dec beginner1, beginner2, c++, Dec
2                       <NA>            Java   Jan                      Java, Jan
3                  beginner3            <NA>   May                 beginner3, May
4              intermediate2            <NA>  <NA>                  intermediate2
5                       <NA>          Matlab   Mar                    Matlab, Mar
6                  advanced1 c("java","c++")   Jul      advanced1, java, c++, Jul

어디

> df$newcol
$`1`
$`1`$level
[1] "beginner1" "beginner2"

$`1`$software
[1] "c++"

$`1`$month
[1] "Dec"


$`2`
$`2`$software
[1] "Java"

$`2`$month
[1] "Jan"


$`3`
$`3`$level
[1] "beginner3"

$`3`$month
[1] "May"


$`4`
$`4`$level
[1] "intermediate2"


$`5`
$`5`$software
[1] "Matlab"

$`5`$month
[1] "Mar"


$`6`
$`6`$level
[1] "advanced1"

$`6`$software
[1] "java" "c++" 

$`6`$month
[1] "Jul"

데이터

df <- structure(list(level = c("c(\"beginner1\",\"beginner2\")", NA, 
"beginner3", "intermediate2", NA, "advanced1"), software = c("c++", 
"Java", NA, NA, "Matlab", "c(\"java\",\"c++\")"), month = c("Dec", 
"Jan", "May", NA, "Mar", "Jul")), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6"))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Excel 문서의 문자열에서 지정된 값을 어떻게 추출 할 수 있습니까?

분류에서Dev

포함 된 Clojure 라이브러리에 다른 문자열 주위로 문자열을 분할하는 함수가 있습니까?

분류에서Dev

객체 내부의 중첩 배열을 쉼표로 구분 된 하나의 연결된 문자열 값으로 어떻게 변환 할 수 있습니까?

분류에서Dev

중복 된 문자열을 문자열 배열에 저장할 수 있습니까?

분류에서Dev

각 문자열이 쉼표로 구분 된 문자열 목록 일 수있는 문자열 목록을 어떻게 처리 할 수 있습니까?

분류에서Dev

SQL에서 문자열을 (하이픈)으로 구분 된 두 부분으로 분리하고 두 부분을 다른 변수에 저장합니다.

분류에서Dev

파이썬의 문자열에서 다중 부분 문자열을 어떻게 추출 할 수 있습니까?

분류에서Dev

SQL : 긴 XML 문자열에서 원하는 부분 문자열을 어떻게 추출 할 수 있습니까?

분류에서Dev

쉼표로 구분 된 문자열을 R에서 정의 된 개수로 분할

분류에서Dev

문자열 내에서 알 수없는 부분 문자열을 추출하는 가장 쉬운 방법을 찾고 있습니다. (슬래시로 구분 된 용어)

분류에서Dev

MySQL IN 문의 값으로 열에서 쉼표로 구분 된 문자열을 어떻게 사용할 수 있습니까?

분류에서Dev

고유 포인터로 초기화 된 동적 배열에 문자열 (n 줄의 파일에서)을 어떻게 저장할 수 있습니까? C ++

분류에서Dev

\ n을 사용하여 문자 배열에서 생성 된 문자열을 분할 할 수 없습니다.

분류에서Dev

파일의 문자열을 둘 다 변수에 저장된 다른 문자열로 바꿉니다.

분류에서Dev

파일의 문자열을 둘 다 변수에 저장된 다른 문자열로 바꿉니다.

분류에서Dev

R에 열의 문자열을 여러 열로 분할하고 모든 하위 문자열에 대해 행을 추가하는 방법이 있습니까?

분류에서Dev

SQL Server에서 2 자 뒤에 8 자리 숫자로 구성된 문자열을 찾아 추출하는 방법이 있습니까?

분류에서Dev

쉼표로 구분 된 문자열의 발생 수를 찾고 문자열을 출력합니다.

분류에서Dev

열 분할-하나 이상의 특수 문자로 구성된 경우에만

분류에서Dev

에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

분류에서Dev

에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

분류에서Dev

C ++ 문자열을 ":"로 구분 된 두 개의 정수로 분할합니다.

분류에서Dev

문자열에서 특수 문자로 구분 된 숫자 추출

분류에서Dev

문자열로 저장된 팬더 시리즈에서 튜플 목록을 추출합니다.

분류에서Dev

여러 구분 기호로 정의 된 문자열 부분을 R에서 여러 변수로 분할

분류에서Dev

Java에서 다른 형식으로 문자열로 저장된 날짜를 어떻게 구문 분석 할 수 있습니까?

분류에서Dev

열에서 반환 된 문자열을 정수로 분할

분류에서Dev

C #의 미리 작성된 문자열에서 어떻게 무작위로 선택할 수 있습니까?

분류에서Dev

데이터 프레임의 열에있는 문자 수로 문자열을 분할하여 R에 여러 열을 생성 하시겠습니까?

Related 관련 기사

  1. 1

    Excel 문서의 문자열에서 지정된 값을 어떻게 추출 할 수 있습니까?

  2. 2

    포함 된 Clojure 라이브러리에 다른 문자열 주위로 문자열을 분할하는 함수가 있습니까?

  3. 3

    객체 내부의 중첩 배열을 쉼표로 구분 된 하나의 연결된 문자열 값으로 어떻게 변환 할 수 있습니까?

  4. 4

    중복 된 문자열을 문자열 배열에 저장할 수 있습니까?

  5. 5

    각 문자열이 쉼표로 구분 된 문자열 목록 일 수있는 문자열 목록을 어떻게 처리 할 수 있습니까?

  6. 6

    SQL에서 문자열을 (하이픈)으로 구분 된 두 부분으로 분리하고 두 부분을 다른 변수에 저장합니다.

  7. 7

    파이썬의 문자열에서 다중 부분 문자열을 어떻게 추출 할 수 있습니까?

  8. 8

    SQL : 긴 XML 문자열에서 원하는 부분 문자열을 어떻게 추출 할 수 있습니까?

  9. 9

    쉼표로 구분 된 문자열을 R에서 정의 된 개수로 분할

  10. 10

    문자열 내에서 알 수없는 부분 문자열을 추출하는 가장 쉬운 방법을 찾고 있습니다. (슬래시로 구분 된 용어)

  11. 11

    MySQL IN 문의 값으로 열에서 쉼표로 구분 된 문자열을 어떻게 사용할 수 있습니까?

  12. 12

    고유 포인터로 초기화 된 동적 배열에 문자열 (n 줄의 파일에서)을 어떻게 저장할 수 있습니까? C ++

  13. 13

    \ n을 사용하여 문자 배열에서 생성 된 문자열을 분할 할 수 없습니다.

  14. 14

    파일의 문자열을 둘 다 변수에 저장된 다른 문자열로 바꿉니다.

  15. 15

    파일의 문자열을 둘 다 변수에 저장된 다른 문자열로 바꿉니다.

  16. 16

    R에 열의 문자열을 여러 열로 분할하고 모든 하위 문자열에 대해 행을 추가하는 방법이 있습니까?

  17. 17

    SQL Server에서 2 자 뒤에 8 자리 숫자로 구성된 문자열을 찾아 추출하는 방법이 있습니까?

  18. 18

    쉼표로 구분 된 문자열의 발생 수를 찾고 문자열을 출력합니다.

  19. 19

    열 분할-하나 이상의 특수 문자로 구성된 경우에만

  20. 20

    에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

  21. 21

    에코 된 문자열의 출력을 어떻게 캡처 할 수 있습니까?

  22. 22

    C ++ 문자열을 ":"로 구분 된 두 개의 정수로 분할합니다.

  23. 23

    문자열에서 특수 문자로 구분 된 숫자 추출

  24. 24

    문자열로 저장된 팬더 시리즈에서 튜플 목록을 추출합니다.

  25. 25

    여러 구분 기호로 정의 된 문자열 부분을 R에서 여러 변수로 분할

  26. 26

    Java에서 다른 형식으로 문자열로 저장된 날짜를 어떻게 구문 분석 할 수 있습니까?

  27. 27

    열에서 반환 된 문자열을 정수로 분할

  28. 28

    C #의 미리 작성된 문자열에서 어떻게 무작위로 선택할 수 있습니까?

  29. 29

    데이터 프레임의 열에있는 문자 수로 문자열을 분할하여 R에 여러 열을 생성 하시겠습니까?

뜨겁다태그

보관