각 관찰 ID는 일반적으로 X : Y 형식의 시퀀스로 저장된 숫자이며 때로는 연결된 목록입니다. 데이터를 정리하여 각 관찰에 고유 한 행이 있으므로 조인 기능을 사용하여 더 자세한 설명이있는 ID를 추가 할 수 있습니다. 일반적으로 tidyr
에서 gather()
함수를 사용하면되지만이 문자는 그대로 ID 풀기에 문제가 있습니다. 그러나콜론 및 연결된 벡터로 정의 된 시퀀스 문자열을 기반으로 긴 데이터 형식을 만듭니다.
example <- data_frame(x = LETTERS[1:3], y = c("Condition 1", "Condition 2", "Condition 3"), z = c("1:3", "4:6", "c(7,9,10)"))
example
# A tibble: 3 × 3
x y z
<chr> <chr> <chr>
1 A Condition 1 1:3
2 B Condition 2 4:6
3 C Condition 3 c(7,9,10)
이 작동하지 않고 모든 NA
을 생산 :
이 데이터는 다음과 같습니다
이as.numeric("1:3")
as.integer("1:3")
as.numeric("c(7,9,10)")
as.integer("c(7,9,10)")
이 작업을 수행 할 수있는 간단한 방법이 있어야하지만 하나의 긴 방법 거라고 생각 먼저 번호를 추출하여 목록으로 저장하십시오. 는 X를 들면 다음과 같습니다과 같이 다른 하나 개의 숫자에서 시퀀스를 생성하는 다음과 : "": Y ID는 난에 문자열을 spliting하여이 작업을 수행 할 수
example[1:2,] %>%
+ separate(z, c("a", "b"), sep = ":") %>%
+ mutate(a = as.numeric(a), b = as.numeric(b), new = list(seq(a, b)))
Error in eval(expr, envir, enclos) : 'from' must be of length 1
그러나이 작동하지 않았다.
이 같은 모습을 목표로하고있어 무엇 :
# A tibble: 9 × 3
x y z
<chr> <chr> <dbl>
1 A Condition 1 1
2 A Condition 1 2
3 A Condition 1 3
4 B Condition 2 4
5 B Condition 2 5
6 B Condition 2 6
7 C Condition 3 7
8 C Condition 3 9
9 C Condition 3 10
그것을 달성하는 가장 간단한 방법은 무엇입니까? 당신이 언어를 확장하지 않는 한
을 사용할 수 있습니다, 그것은 문자열로 코드를 저장하는 나쁜 생각입니다. 관측 당 하나 이상의 값을 저장해야하는 경우 목록 열을 사용하십시오. – alistaire
동의합니다. 이 데이터 형식은 타사의 생물 정보학 패키지에서 제공됩니다. 나는 그들의 github repo에 대한 제안을 할 수 있습니다. –