あなたはあなたの正確な要求されたフォーマットであることをdocendoの答えを拡張する場合
lapply(stringr::str_extract_all(t, "[A-Z]"),
function(x) {
x = table(x)
paste(names(x), x, sep = "-")
})
# [[1]]
# [1] "G-1"
#
# [[2]]
# [1] "C-1" "G-1" "T-2"
#
# [[3]]
# [1] "G-2"
とどのように私はtidyverse
library(tidyverse)
data = data.frame(strings = c("gctaggggggatggttactactGtgctatggactac", "gGaagggacggttactaCgTtatggactacT", "gcGaggggattggcttacG"))
data %>%
mutate(caps_freq = stringr::str_extract_all(strings, "[A-Z]"),
caps_freq = map(caps_freq, function(letter) data.frame(table(letter)))) %>%
unnest()
# strings letters Freq
# 1 gctaggggggatggttactactGtgctatggactac G 1
# 2 gGaagggacggttactaCgTtatggactacT C 1
# 3 gGaagggacggttactaCgTtatggactacT G 1
# 4 gGaagggacggttactaCgTtatggactacT T 2
# 5 gcGaggggattggcttacG G 2
でそれを行うだろうdocendoの答え@との違いは何ですか?私はそれを見ない(最後に 'paste 'をする以外の) - 同じ答えです。imo – Sotos
これは要求された出力なのでです。私はかなり明確に言ったように、私は彼の答えを広げました... – zacdav
正しいことは、彼の答えの下で、貼り付け部分を収容するために追加のステップを加えることができるということです。コードの行を追加するだけで同じ回答を再投稿することは、盗作のように聞こえる。しかし、「tidyverse」の追加は新しい答え(それも私の出力が正直である方が良いと思います) – Sotos