我有一个嵌套列表。该列表的每个级别均已命名(如提供的虚拟示例中所示)。我想从初始列表的第二级中提取名称(唯一),这样我就可以在一些进一步的操作中使用它们。
我知道如何分两步完成,但我想知道是否有更有效/优雅的解决方案。我也想知道正则表达式方法是否会更快(我是正则表达式新手)。
这是一个虚拟列表:
x <- list(one = list(one_1 = list(seq = 1:9, start = 1, end = 5),
one_2 = list(seq = 2:11, start = 2, end = 6), one_3 = list(
seq = 3:12, start = 3, end = 7)), two = list(two_1 = list(
seq = 1:13, start = 8, end = 222), two_2 = list(seq = 1:14,
start = 13, end = 54)))
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
allnames <- names(rapply(x, function(x) head(x, 1)))
desirednames <- unique(sapply(strsplit(allnames, ".", fixed=TRUE), "[", 2))
Run Code Online (Sandbox Code Playgroud) 我有以下数据框:
df1 <- structure(list(group = c("KO", "WT", "KO", "KO", "KO", "KO",
"WT", "KO", "KO", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "KO", "KO"), name = c("rike", "rabe", "smake", "rike",
"rike", "rike", "rabe", "rike", "rike", "due", "rabe", "ene",
"ene", "due", "ene", "rabe", "due", "rabe", "due", "smake", "kum"
), type = c("C", "A", "A", "A", "C", "B", "A", "B", "B", "A",
"B", "A", "C", "C", "C", "C", "B", "C", "A", "C", "A"), posit = c(10,
2, 21, 5, 12, …Run Code Online (Sandbox Code Playgroud) 我有以下数据框:
readname <- c("tic", "tac", "toe")
sequence <- c("TTTTTTTTATTTTTA","TTTTCTTTTTTTTT","GTTTTTTT")
df <- data.frame(readname, sequence)
Run Code Online (Sandbox Code Playgroud)
我想使用 ggplot2 绘制它,因此 y 轴将包含“readname”列,并且存储在“sequence”列中的字符串将水平绘制,一个在另一个下面,全部向右对齐。我还想为每个字母指定颜色(例如A - 红色,T - 蓝色,C - 绿色,G - 黄色)。
我尝试使用 geom_text() 但我生成空图或将每个字符串绘制在同一级别(折叠)或绘制在各个级别上,未对齐。这同样适用于 geom_label()。
我的尝试之一:
ggplot2::ggplot(df, aes(x=sequence, y=readname)) + ggplot2::geom_label(label=sequence)
Run Code Online (Sandbox Code Playgroud)
这是我想要实现的目标(通过文本编辑器):