Her gözlemin kimliklerinin genellikle X: Y biçiminde, ancak bazen birleştirilmiş listeler halinde diziler halinde depolandığı sayılardır. Verileri düzenli hale getirmek istiyorum ki her gözlem kendi satırına sahip olacak, böylece daha açıklayıcı kimlikler eklemek için bir katılma işlevi kullanabileceğim. Normalde tidyr
numaralı telefondan gather()
işlevini kullanırdım, ancak kimlikleri karakterleri olduğu gibi açma konusunda sorun yaşıyorum. AncakCololar ve birleştirilmiş vektörler tarafından tanımlanan dizilerin dizilerine göre uzun veri formatı yaratın
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)
bunlar işe yaramazsa ve tüm NA
üretmek:
veri şuna benzer
as.numeric("1:3")
as.integer("1:3")
as.numeric("c(7,9,10)")
as.integer("c(7,9,10)")
Bunu yapmak için basit bir yolu olmalı ama bir uzun yol düşünmüştüm ki sayıları ayıklamak ve önce bir liste olarak saklamak. X için: böylece gibi diğer bir numaradan bir diziyi oluştururken sonra ve: "": Y kimlikleri ben de dize çatlıyor bu yapabileceğini
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
Ancak bu işe yaramadı.
böyle görünüşleri için amaçlayan ediyorum Ne:
# 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
bunu başaracak en basit yolu nedir? Eğer dil uzanan sürece
kullanabilirsiniz, o dizeleri olarak kod depolamak için kötü bir fikirdir. Her gözlem için birden fazla değer kaydetmeniz gerekiyorsa, bir liste sütunu kullanın. – alistaire
Katılıyorum. Bu veri formatı 3. taraf biyoenformatik paketinden geliyor. Github repo'larında bir öneride bulunabilirim. –