당신은 Force
및 Time
행을 번갈아에 대한 첫 gather
모든 열 다음 spread
로합니다. tidyr
및 dplyr
를 사용
rtabla1 <- structure(list(SR_1.5x1.5x1.5_90s.001.Force = c(52.2, 55.3, 62.6, 66.5, 70.8, 75.9, 77.6, 78.7, 80.2, 83.8), SR_1.5x1.5x1.5_90s.001.Time = c(0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.024, 0.028, 0.032, 0.036),
SR_1.5x1.5x1.5_90s.002.Force = c(64.8, 69.6, 76, 80.2, 85.1,
90.5, 94.1, 95.6, 99.7, 103.4), SR_1.5x1.5x1.5_90s.002.Time = c(0,
0.004, 0.008, 0.012, 0.016, 0.02, 0.024, 0.028, 0.032, 0.036
)), .Names = c("SR_1.5x1.5x1.5_90s.001.Force", "SR_1.5x1.5x1.5_90s.001.Time", "SR_1.5x1.5x1.5_90s.002.Force", "SR_1.5x1.5x1.5_90s.002.Time"), row.names = c(NA, -10L), class = "data.frame")
## SR_1.5x1.5x1.5_90s.001.Force SR_1.5x1.5x1.5_90s.001.Time SR_1.5x1.5x1.5_90s.002.Force SR_1.5x1.5x1.5_90s.002.Time
##1 52.2 0.000 64.8 0.000
##2 55.3 0.004 69.6 0.004
##3 62.6 0.008 76.0 0.008
##4 66.5 0.012 80.2 0.012
##5 70.8 0.016 85.1 0.016
##6 75.9 0.020 90.5 0.020
##7 77.6 0.024 94.1 0.024
##8 78.7 0.028 95.6 0.028
##9 80.2 0.032 99.7 0.032
##10 83.8 0.036 103.4 0.036
: 먼저
, 우리는 데이터의 작은 조각을 다시
library(dplyr)
library(tidyr)
result <- rtabla1 %>% mutate(Row=seq_len(n())) %>% ##1.
gather("ID","Vals",-Row) %>% ##2.
mutate(FT=ifelse(grepl(".Force$",ID), "Force", "Time"), ##3.
ID=sub("(.Force$)|(.Time$)","",ID)) %>%
spread(FT,Vals) %>% ##4.
select(-Row) %>% ##5.
arrange(ID) ##6.
참고 :
- 우선은 식별자 열을 추가 그냥 행 번호.
gather
을 제외한 모든 열 ID
열에는 수집 된 열 이름이 포함됩니다.
mutate
이 ID
열은 열 조작을 사용하여 열 FT
을 형성합니다. 이 FT
열은 수집 된 행 중 Force
이고 어느 것이 Time
인지 식별하기 위해 작성됩니다. 이후 spread
에서 사용됩니다. 값은 결과의 열 이름 (예 : "Force"
또는 "Time"
)과 일치하도록 작성됩니다. 여기에서 grepl
을 사용하여 ID
이 ".Force"
으로 끝나는 지 확인하십시오. 그렇다면 FT
열을 "Force"
으로 설정하십시오. 그렇지 않은 경우 FT
열을 "Time"
으로 설정하십시오. 그런 다음 ID
열을 업데이트하여 ".Force"
또는 ".Time"
을 제거합니다.
- 이제는
FT
을 키로 사용하고 값으로 수집 한 값을 사용하여 spread
입니다.
- 결과에서 열을 제거하십시오. 데이터의 작은 조각을 사용
ID
result
의해
정렬은 다음과 같이 예상된다 print(result)
## ID Force Time
##1 SR_1.5x1.5x1.5_90s.001 52.2 0.000
##2 SR_1.5x1.5x1.5_90s.001 55.3 0.004
##3 SR_1.5x1.5x1.5_90s.001 62.6 0.008
##4 SR_1.5x1.5x1.5_90s.001 66.5 0.012
##5 SR_1.5x1.5x1.5_90s.001 70.8 0.016
##6 SR_1.5x1.5x1.5_90s.001 75.9 0.020
##7 SR_1.5x1.5x1.5_90s.001 77.6 0.024
##8 SR_1.5x1.5x1.5_90s.001 78.7 0.028
##9 SR_1.5x1.5x1.5_90s.001 80.2 0.032
##10 SR_1.5x1.5x1.5_90s.001 83.8 0.036
##11 SR_1.5x1.5x1.5_90s.002 64.8 0.000
##12 SR_1.5x1.5x1.5_90s.002 69.6 0.004
##13 SR_1.5x1.5x1.5_90s.002 76.0 0.008
##14 SR_1.5x1.5x1.5_90s.002 80.2 0.012
##15 SR_1.5x1.5x1.5_90s.002 85.1 0.016
##16 SR_1.5x1.5x1.5_90s.002 90.5 0.020
##17 SR_1.5x1.5x1.5_90s.002 94.1 0.024
##18 SR_1.5x1.5x1.5_90s.002 95.6 0.028
##19 SR_1.5x1.5x1.5_90s.002 99.7 0.032
##20 SR_1.5x1.5x1.5_90s.002 103.4 0.036