reshape를 사용하여 접미사 대신 접두사로 반복 측정 열 이름 추가

Llew Mills

반복 측정 설계를위한 긴 형식의 데이터 프레임을 넓은 형식으로 전환하기 위해 기본 R의 모양 변경 기능을 사용하고 있습니다. 아래 장난감 데이터 세트를 참조하세요. 질문 1, 2, 3은 3 개 항목 설문 조사에 대한 개별 응답입니다. 설문 조사에 각각 4 번씩 응시하는 4 명의 참가자가 있습니다.

Q1 <- c(2,6,5,4,3,8,9,2,1,5,4,7,3,7,2,1)
Q2 <- c(4,7,6,3,1,2,5,6,7,5,4,3,5,6,6,3)
Q3 <- c(7,9,3,1,5,3,7,5,3,3,5,7,8,9,9,3)
Participant <- rep(c("Bob","Sue","Jim","Tom"), times = 1, each = 4)
Time <- rep(c("FirstSurvey","SecondSurvey","ThirdSurvey","FourthSurvey"), times = 4)

m <- as.data.frame(cbind(Participant, Time, Q1, Q2, Q3))

이것은 다음 데이터 프레임을 생성합니다.

m

   Participant         Time Q1 Q2 Q3
1          Bob  FirstSurvey  2  4  7
2          Bob SecondSurvey  6  7  9
3          Bob  ThirdSurvey  5  6  3
4          Bob FourthSurvey  4  3  1
5          Sue  FirstSurvey  3  1  5
6          Sue SecondSurvey  8  2  3
7          Sue  ThirdSurvey  9  5  7
8          Sue FourthSurvey  2  6  5
9          Jim  FirstSurvey  1  7  3
10         Jim SecondSurvey  5  5  3
11         Jim  ThirdSurvey  4  4  5
12         Jim FourthSurvey  7  3  7
13         Tom  FirstSurvey  3  5  8
14         Tom SecondSurvey  7  6  9
15         Tom  ThirdSurvey  2  6  9
16         Tom FourthSurvey  1  3  3

그런 다음 모양을 변경하면 :

mReshaped <- reshape(m, idvar = "Participant", timevar = "Time", direction = "wide", sep = "", new.row.names = c(1,2,3,4))

다음과 같은 와이드 포맷 데이터 프레임을 생성합니다.

mReshaped

  Participant Q1FirstSurvey Q2FirstSurvey Q3FirstSurvey Q1SecondSurvey Q2SecondSurvey
1         Bob             2             4             7              6              7
2         Sue             3             1             5              8              2
3         Jim             1             7             3              5              5
4         Tom             3             5             8              7              6
  Q3SecondSurvey Q1ThirdSurvey Q2ThirdSurvey Q3ThirdSurvey Q1FourthSurvey Q2FourthSurvey
1              9             5             6             3              4              3
2              3             9             5             7              2              6
3              3             4             4             5              7              3
4              9             2             6             9              1              3
  Q3FourthSurvey
1              1
2              5
3              7
4              3

다음 열 이름으로

colnames(mReshaped)

 [1] "Participant"    "Q1FirstSurvey"  "Q2FirstSurvey"  "Q3FirstSurvey"  "Q1SecondSurvey"
 [6] "Q2SecondSurvey" "Q3SecondSurvey" "Q1ThirdSurvey"  "Q2ThirdSurvey"  "Q3ThirdSurvey" 
[11] "Q1FourthSurvey" "Q2FourthSurvey" "Q3FourthSurvey"

데이터 프레임의 모양이 변경 될 때 볼 수 있듯이 reshape 함수는 반복되는 각 측정 값의 열 이름에 접미사로 시간 변수를 추가합니다.

각 Value 변수 이름 앞에 Time 변수를 접두어로 넣을 수 있도록 reshape 함수에 인수가 있는지 아는 사람이 있습니까?

eipi10

내에서 순서를 변경할 수 있는지 확실하지 reshape않지만 나중에 gsub정규 표현식을 사용하여 변경할 수 있습니다 .

names(mReshaped) = gsub("(Q[0-9])(.*)", "\\2\\1", names(mReshaped))

 [1] "Participant"    "FirstSurveyQ1"  "FirstSurveyQ2"  "FirstSurveyQ3"  "SecondSurveyQ1"
 [6] "SecondSurveyQ2" "SecondSurveyQ3" "ThirdSurveyQ1"  "ThirdSurveyQ2"  "ThirdSurveyQ3" 
[11] "FourthSurveyQ1" "FourthSurveyQ2" "FourthSurveyQ3"

업데이트 : 코드 작동 방식에 대한 설명 : 코드는 처음 볼 때 매우 모호한 텍스트 처리 언어 인 정규식 (또는 줄여서 "정규식")을 사용합니다.

이 경우 Q[0-9]"Q"다음에 숫자가 일치 함을 의미합니다. (Q[0-9])해당 일치를 "캡처 그룹"으로 변환하여 나중에 다시 참조 할 수 있습니다. 이것은 캡처 그룹 # 1입니다.

.*나머지 모든 문자와 일치 함을 의미합니다 (와 일치하는 항목 뒤에 오는 모든 항목 Q[0-9]). .단일 문자와 일치 함을 의미합니다. 추가 *는 모든 길이의 문자열과 일치 함을 의미합니다. (.*)경기를 캡처 그룹 # 2로 바꿉니다.

\\2\\1 캡처 한 두 문자열을 가져 와서 순서를 바꿉니다.

정규식은 이와 같은 텍스트 조작 작업에 매우 유용 할 수 있습니다. 이에 대해 자세히 알아볼 수있는 몇 곳은 여기 , 여기 , 여기입니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동적 접두사 / 접미사를 추가하여 파일 복사 및 이름 바꾸기

분류에서Dev

행을 열로 변환하고 다른 열을 기반으로 접미사를 사용하여 반복되는 열 이름 만들기

분류에서Dev

Bash : 접두사를 접미사로 사용하여 파일 이름 바꾸기

분류에서Dev

사용자 이름에 접미사 번호를 추가하여 중복을 방지 하시겠습니까?

분류에서Dev

SequenceStyleGenerator, 접미사 대신 접두사를 사용하는 방법

분류에서Dev

기존 열 이름을 기반으로 열 이름에 접미사를 추가하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 문자열에 접두사와 접미사를 추가하는 방법

분류에서Dev

jQuery를 사용하여 이미지 소스에 캐시 접두사 추가

분류에서Dev

찾기 및 이름 바꾸기를 사용하여 반복적으로 모든 파일과 폴더에 사용자 정의 문자열을 추가합니다.

분류에서Dev

여러 파일에서 접두사를 추출하고 접미사로 추가하여 이름을 바꿉니다.

분류에서Dev

셸 스크립트를 사용하여 접두사와 접미사가 일치하는 파일 복사

분류에서Dev

dplyr을 사용하여 다른 열의 값을 사용하여 열 이름에 접두사 추가

분류에서Dev

Pandas에서 중복 열 이름에 접미사를 추가하려면 df.add_suffix를 어떻게 사용합니까?

분류에서Dev

Oracle SQL- '선택으로 생성'에 대한 중복 열 이름 접두사

분류에서Dev

추가 열이 특정 문자열과 동일한 경우 중복에 접미사 추가

분류에서Dev

NaN 값이있는 열 복사 및 접두사 추가

분류에서Dev

파이썬은 접두사와 접미사가 일치하는 경우에만 re.sub를 사용하여 문자열을 바꿉니다.

분류에서Dev

특정 접미사가있는 LINQ (EF)를 사용하여 테이블에서 이름 가져 오기

분류에서Dev

월 문자열을 기반으로하는 파일 이름에 숫자 접두사를 추가하는 배치 파일

분류에서Dev

동일한 접두사 (및 추출 접미사)를 사용하여 ANT 속성에 대해 루프

분류에서Dev

r에서 rename_at를 사용하여 열 이름에서 접미사 제거

분류에서Dev

모든 행에 대해 Datatables를 사용하여 특정 열의 값을 기반으로 <th>에 클래스 이름을 추가하는 방법

분류에서Dev

라이브러리 함수를 사용하여 파이썬 방식으로 파이썬의 두 문자열 사이에서 가장 긴 공통 접미사 접두사를 찾는 방법은 무엇입니까?

분류에서Dev

SAS에서 접두사를 다른 접두사로 대체하여 변수 이름을 동적으로 변경

분류에서Dev

스칼라의 테이블 이름 및 열 이름 목록을 수락하고 열 값에 추가 된 접두사를 반환합니다.

분류에서Dev

동적으로 각 열에 접두사를 추가하여 열 값 업데이트

분류에서Dev

접두사와 접미사를 제거하고 중간 문자열은 그대로 둡니다.

분류에서Dev

접두사 열 이름과 함께 mutate_at를 사용하여 값 비교

분류에서Dev

R : 열 접두사 및 접미사를 기반으로 조건부로 값 바꾸기

Related 관련 기사

  1. 1

    동적 접두사 / 접미사를 추가하여 파일 복사 및 이름 바꾸기

  2. 2

    행을 열로 변환하고 다른 열을 기반으로 접미사를 사용하여 반복되는 열 이름 만들기

  3. 3

    Bash : 접두사를 접미사로 사용하여 파일 이름 바꾸기

  4. 4

    사용자 이름에 접미사 번호를 추가하여 중복을 방지 하시겠습니까?

  5. 5

    SequenceStyleGenerator, 접미사 대신 접두사를 사용하는 방법

  6. 6

    기존 열 이름을 기반으로 열 이름에 접미사를 추가하는 방법은 무엇입니까?

  7. 7

    파이썬에서 문자열에 접두사와 접미사를 추가하는 방법

  8. 8

    jQuery를 사용하여 이미지 소스에 캐시 접두사 추가

  9. 9

    찾기 및 이름 바꾸기를 사용하여 반복적으로 모든 파일과 폴더에 사용자 정의 문자열을 추가합니다.

  10. 10

    여러 파일에서 접두사를 추출하고 접미사로 추가하여 이름을 바꿉니다.

  11. 11

    셸 스크립트를 사용하여 접두사와 접미사가 일치하는 파일 복사

  12. 12

    dplyr을 사용하여 다른 열의 값을 사용하여 열 이름에 접두사 추가

  13. 13

    Pandas에서 중복 열 이름에 접미사를 추가하려면 df.add_suffix를 어떻게 사용합니까?

  14. 14

    Oracle SQL- '선택으로 생성'에 대한 중복 열 이름 접두사

  15. 15

    추가 열이 특정 문자열과 동일한 경우 중복에 접미사 추가

  16. 16

    NaN 값이있는 열 복사 및 접두사 추가

  17. 17

    파이썬은 접두사와 접미사가 일치하는 경우에만 re.sub를 사용하여 문자열을 바꿉니다.

  18. 18

    특정 접미사가있는 LINQ (EF)를 사용하여 테이블에서 이름 가져 오기

  19. 19

    월 문자열을 기반으로하는 파일 이름에 숫자 접두사를 추가하는 배치 파일

  20. 20

    동일한 접두사 (및 추출 접미사)를 사용하여 ANT 속성에 대해 루프

  21. 21

    r에서 rename_at를 사용하여 열 이름에서 접미사 제거

  22. 22

    모든 행에 대해 Datatables를 사용하여 특정 열의 값을 기반으로 <th>에 클래스 이름을 추가하는 방법

  23. 23

    라이브러리 함수를 사용하여 파이썬 방식으로 파이썬의 두 문자열 사이에서 가장 긴 공통 접미사 접두사를 찾는 방법은 무엇입니까?

  24. 24

    SAS에서 접두사를 다른 접두사로 대체하여 변수 이름을 동적으로 변경

  25. 25

    스칼라의 테이블 이름 및 열 이름 목록을 수락하고 열 값에 추가 된 접두사를 반환합니다.

  26. 26

    동적으로 각 열에 접두사를 추가하여 열 값 업데이트

  27. 27

    접두사와 접미사를 제거하고 중간 문자열은 그대로 둡니다.

  28. 28

    접두사 열 이름과 함께 mutate_at를 사용하여 값 비교

  29. 29

    R : 열 접두사 및 접미사를 기반으로 조건부로 값 바꾸기

뜨겁다태그

보관