小编Nig*_*use的帖子

从向量B的每个元素中减去向量A的每个元素

有没有人知道以矢量化格式完成以下任何方法?

而不是减去成员明智test1test,我想每一个元素减去test1从每一个元素test.所以,而不是:

test = c(1:10)
test1 = seq(0.1, 1, 0.1)

test - test1
 [1] 0.9 1.8 2.7 3.6 4.5 5.4 6.3 7.2 8.1 9.0
Run Code Online (Sandbox Code Playgroud)

我想要:

test2=vector("list")
for(i in 1:length(test)){
  test2[[i]] = test[i] - test1
}
test2
[[1]]
 [1] 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0

[[2]]
 [1] 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0

[[3]]
 [1] 2.9 2.8 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0 …
Run Code Online (Sandbox Code Playgroud)

r vector

4
推荐指数
2
解决办法
1113
查看次数

用ggplot2绘制粗体字母?

我正在使用ggplot2构建一个包含四个图的图形,每个图由一个特定的建模域组成.我想用粗体字母上的字母制作下面的图.使用符号太有问题,因为我有8个类别,符号看起来太相似了.

示例图

以下是可重复的示例.

数据:

Covariate.Weights.Data= structure(list(Species = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 
6L, 6L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 6L, 6L, 
6L, 6L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 3L, 3L, …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
742
查看次数

R 中的向量化 for 循环

我正在努力矢量化以下函数的重复应用程序,我目前已将其实现为 for 循环。这个小例子表明了较大数据集的问题,矢量化将允许有益的运行时改进:

action = function(x,y,i) {

    firsttask = cumsum(x[which(x<y[i])])
    secondtask = mean(firsttask)
    thirdtask = min(firsttask[which(firsttask>secondtask)])
    fourthtask = length(firsttask)

    output = list(firsttask, data.frame(average=secondtask,
                                        min_over_mean=thirdtask,
                                        size=fourthtask))
    return(output)
}

thingofinterest = c(1:10)
limits = c(5:10)

test = vector("list", length = length(limits))
for(i in 1:length(limits)) {
test[[i]] = action(thingofinterest, limits, i)
}

test
Run Code Online (Sandbox Code Playgroud)

我想用矢量化命令替换 for 循环,而不是任何apply函数系列,因为它们并不总是能提高性能(我并不是说 for 循环有任何问题,我只需要优化此中的速度)案例。参见:R 的 apply 系列比语法糖更重要吗?)。我该怎么做?

r

4
推荐指数
1
解决办法
2492
查看次数

R使用旧data.table中的单个列的指定行创建新的data.table

我有以下内容data.table:

    Month Day  Lat Long        Temperature
 1:    10  01 80.0  180 -6.383330333333309
 2:    10  01 77.5  180 -6.193327999999976
 3:    10  01 75.0  180 -6.263328333333312
 4:    10  01 72.5  180 -5.759997333333306
 5:    10  01 70.0  180 -4.838330999999976
---                                       
117020:    12  31 32.5  310 11.840003833333355
117021:    12  31 30.0  310 13.065001833333357
117022:    12  31 27.5  310 14.685003333333356
117023:    12  31 25.0  310 15.946669666666690
117024:    12  31 22.5  310 16.578336333333358
Run Code Online (Sandbox Code Playgroud)

对于每个地点(由Lat和给出Long),我在10月1日至12月31日期间每天都有温度.

有1,272个地点,每个成对组合包括Lat:

    Lat
1   80.0 …
Run Code Online (Sandbox Code Playgroud)

r data.table

0
推荐指数
1
解决办法
294
查看次数

标签 统计

r ×4

data.table ×1

vector ×1