我有两个与这些类似的命名向量:
x <- c(1:5)
names(x) <- c("a","b","c","d","e")
t <- c(6:10)
names(t) <- c("e","d","c","b","a")
Run Code Online (Sandbox Code Playgroud)
我想将它们结合起来以获得以下结果:
x t
a 1 10
b 2 9
c 3 8
d 4 7
e 5 6
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我运行cbind(x,t)的结果只是它们结合他们不顾的名字顺序t,并只保留那些x。给出以下结果:
x t
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Run Code Online (Sandbox Code Playgroud)
我很确定一定有一个简单的解决方案,但我找不到它。由于这篇文章是一个冗长乏味的循环的一部分(而且我正在处理的向量要长得多),因此让计算选项最不复杂且计算速度更快是很重要的。
假设我遇到以下问题:拥有一组数据,生成一个图表,指示有多少数据点低于任何给定阈值。
这是相当容易实现的
n.data <- 215
set.seed(0)
dt <- rnorm(n.data) ** 2
x <- seq(0, 5, by=.2)
y <- sapply(x, function(i) length(which(dt < i)))
ggplot() +
geom_point(aes(x=x,y=y)) +
geom_hline(yintercept = n.data)
Run Code Online (Sandbox Code Playgroud)
问题是,假设我想添加一个标签来指示观察总数是 ( n.data)。我该如何做到这一点,同时将其他休息时间保持为默认?
我想要的结果如下图所示,由代码生成
ggplot() +
geom_point(aes(x=x,y=y)) +
geom_hline(yintercept = n.data) +
scale_y_continuous(breaks = c(seq(0,200,50),n.data))
Run Code Online (Sandbox Code Playgroud)
但是,即使我更改 的值n.data,我也希望它能够工作,只需将其添加到默认中断即可。(如果您还消除了最后一个默认中断与默认中断之间的网格线,则会获得奖励积分n.data!)