小编lat*_*lio的帖子

根据基数 R 中另一个向量的值生成重复值的向量

样本数据

batch <- c(rep(1,3), rep(2,4), rep(3,5))
batch
[1] 1 1 1 2 2 2 2 3 3 3 3 3

alpha <- c(0.05, 0.04, 0.03)
Run Code Online (Sandbox Code Playgroud)

问题陈述

我想创建一个向量,比如说alphaialpha它在batch给定值处重复出现次数的第 i 个元素(例如,对于批次 = 1,应该重复 alpha 的第一个值 1 出现的次数) . 所需的输出应如下所示:

alpha
[1] 0.05 0.05 0.05 0.04 0.04 0.04 0.04 0.03 0.03 0.03 0.03 0.03
Run Code Online (Sandbox Code Playgroud)

请提供仅基于 R 的解决方案,谢谢!

编辑

我希望提供的代码在批处理情况下工作,其中批处理可以是非递增序列或非连续序列(即 1、3、4、5 等)

batch2 <- c(rep(1,3), rep(3, 4), rep(4,5))
batch2
[1] 1 1 1 3 3 3 3 4 …
Run Code Online (Sandbox Code Playgroud)

r vector

2
推荐指数
1
解决办法
75
查看次数

从 dplyr 到 base:为变量的每个级别创建第一个和最后一个索引的数据框

问如何从dplyrtobase可能是一个奇怪的问题,尤其是因为我喜欢tidyverse,但我认为因为我学习了tidyverse第一个,我对基础的掌握还很不熟练,我需要一个base解决方案,因为我正在帮助开发这个包不想要任何tidyverse依赖

数据(还有更多的列,但为了 reprex 的缘故而缩写):

sample.df <- tibble(batch = rep(c(1,2,3), c(4,5,6)))
Run Code Online (Sandbox Code Playgroud)

期望基数相当于:

sample.df %>%
  mutate(rowid = row_number()) %>%
  group_by(batch) %>%
  summarize(idx_b = min(rowid),
            idx_e = max(rowid))

# A tibble: 3 x 3
# Groups:   batch [3]
  batch idx_b idx_e
  <dbl> <int> <int>
1     1     1     4
2     2     5     9
3     3    10    15
Run Code Online (Sandbox Code Playgroud)

r dataframe dplyr

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

在 rcpp 中无法识别 seq_len

我是 Rcpp 的新手,这可能是一个愚蠢的问题,但我似乎无法让 seq_len 在 rcpp 中工作,即使我知道它应该是Rcpp 具有的类似 R 的函数。这是我的代码:

cppFunction("NumericVector foo2(int n){
IntegerVector x = Rcpp::seq_len(n);
return x;
            }")
Run Code Online (Sandbox Code Playgroud)

这会导致错误消息:“错误:无法从类型为‘Vector<13>’的返回值转换为函数返回类型‘Vector<14>’ return x;”

r rcpp

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

标签 统计

r ×3

dataframe ×1

dplyr ×1

rcpp ×1

vector ×1