如果扩展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的答案有什么不同?我没有看到它(除了在末尾做“粘贴”) - 相同的答案imo – Sotos
因为这是请求的输出。正如我很清楚地说的,我延长了他的答案...... – zacdav
正确的做法是在他的回答下评论,可以添加一个额外的步骤来适应粘贴部分。重新发布相同的答案只是添加一行代码听起来有点像剽窃。然而,'tidyverse'加成使得它可以作为一个新的答案(我也喜欢它的输出更好说实话) – Sotos