小编Dat*_*neR的帖子

用向量的值替换递归列表的所有值

说,我有以下递归列表:

rec_list <- list(list(rep(1,5), 10), list(rep(100, 4), 20:25))
rec_list
[[1]]
[[1]][[1]]
[1] 1 1 1 1 1

[[1]][[2]]
[1] 10


[[2]]
[[2]][[1]]
[1] 100 100 100 100

[[2]][[2]]
[1] 20 21 22 23 24 25
Run Code Online (Sandbox Code Playgroud)

现在,我想用向量替换列表的所有值seq_along(unlist(rec_list)),并保留列表的结构.我尝试使用像空的索引子集一样

rec_list[] <- seq_along(unlist(rec_list))
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

如何在保持列表的原始结构的同时实现替换?

recursion r list subset

16
推荐指数
2
解决办法
685
查看次数

在dplyr和列中使用重命名时避免错误不存在

在某些情况下,是否有一种在dplyr中使用重命名功能的聪明方法是不存在要重命名的列?

例如,我希望以下内容不会导致错误

mtcars%>%rename(miles_per_gallon=mpg,missing_varible=foo)
Run Code Online (Sandbox Code Playgroud)

(结果如下:错误:未知变量:foo.)

而是完成所有可能重命名的数据框.

目前,我在重命名之前明确检查特定列是否存在

谢谢

伊恩

r dplyr

11
推荐指数
5
解决办法
3948
查看次数

dplyr - 分组并选择TOP x%

使用包dplyr和函数 sample_frac可以从每个组中采样百分比.我需要的是首先对每个组中的元素进行排序,然后从每个组中选择前x%?

有一个功能 top_n,但在这里我只能确定行数,我需要一个相对值.

例如,以下数据按齿轮分组并按其排序 wt每组内的:

library(dplyr)
mtcars %>%
  select(gear, wt) %>%
  group_by(gear) %>%
  arrange(gear, wt)

    gear    wt
1   3   2.465
2   3   3.215
3   3   3.435
4   3   3.440
5   3   3.460
6   3   3.520
7   3   3.570
8   3   3.730
9   3   3.780
10  3   3.840
11  3   3.845
12  3   4.070
13  3   5.250
14  3   5.345
15  3   5.424
16  4   1.615
17  4   1.835
18  4   1.935
19  4   2.200
20  4 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

10
推荐指数
3
解决办法
9176
查看次数

突出显示djvu文档中的文本

我有一些'djvu'格式的书籍,想在'pdf'文件中使用突出显示.我做了一些研究,但没有成功.是否可以突出显示'djvu'文档中的文字?还包括您的建议平台.

format document highlight djvu

7
推荐指数
0
解决办法
961
查看次数

使用“ midasr”软件包进行预测:包含新的高频值

我正在尝试使用所谓的MIDAS概念来计算一步一步的预测。在这一概念内,可以根据高频数据来计算预测。例如,因变量y可以每年进行记录,并借助自变量进行解释,该自变量x可以按季度抽样。

有一个名为的软件包midasr,提供许多功能。我可以使用select_and_forecast上述包中的函数按如下方式计算单步预测(使用模拟数据,这是该包用户指南中示例的简化版本midasr):

数据生成:

library(midasr)
set.seed(1001)
n <- 250
trend <- c(1:n)
x <- rnorm(4 * n)
z <- rnorm(12 * n)
fn.x <- nealmon(p = c(1, -0.5), d = 8)
y <- 2 + 0.1 * trend + mls(x, 0:7, 4) %*% fn.x + rnorm(n)
Run Code Online (Sandbox Code Playgroud)

预测的计算(样本外的预测范围由参数控制outsample,因此在我的示例中,我要计算10个预测,从240到250)

select_and_forecast(y~trend+mls(y,1,1,"*")+mls(x,0,4),
                          from=list(x=c(4)),
                          to=list(x=rbind(c(14,19))),
                          insample=1:250,outsample=240:250,
                          weights=list(x=c("nealmon","almonp")),
                          wstart=list(nealmon=rep(1,3),almonp=rep(1,3)),
                          IC="AIC",
                          seltype="restricted",
                          ftype="recursive",
                          measures=c("MSE"),
                          fweights=c("EW","BICW")
)$forecasts[[1]]$forecast
Run Code Online (Sandbox Code Playgroud)

我现在想模拟的情况是,高频变量的新值变得可用,因为例如已经过去了一个新的月份,并且该月的值可以在模型中使用。我将按照以下步骤进行操作,但不确定是否正确:

select_and_forecast(y~trend+mls(y,1,1,"*")+mls(x,0,4),
                          from=list(x=c(3)),   # The only change is the reduction …
Run Code Online (Sandbox Code Playgroud)

r time-series

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

如何使用部分粗体文本获取`mtext()`?

我想在我的情节中添加一个文字,以便一个字母a显示为粗体.我从以下开始,但结果不是我需要的:

plot(1:5,axes=F)
mtext(c(only a should be bold),1:1,font=2)
Run Code Online (Sandbox Code Playgroud)

我该怎么做只做一个大胆的?

r

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

aov 和 t.test 提供不同的结果

据我所知,当应用于具有一个解释变量的数据时,t 检验应该提供与方差分析相同的结果(相同的 p 值)。为了测试这一点,我运行了以下命令来比较结果:

df <- structure(list(y = c(1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1), x = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("FP", "WP" ), class = "factor")), class = "data.frame", row.names = c(NA,-11L))

summary(aov(y ~ x, data = df))
             Df Sum Sq Mean Sq F value Pr(>F)
x            1 0.3068  0.3068   1.473  0.256
Residuals    9 1.8750  0.2083               

t.test(y ~ x, data = df)

Welch Two Sample t-test …
Run Code Online (Sandbox Code Playgroud)

r anova

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

R中的聚合NA

我在计算聚合方法时遇到麻烦.请参阅以下代码:

tab=data.frame(a=c(1:3,1:3), b=c(1,2,NA,3,NA,NA))
tab
  a  b
1 1  1
2 2  2
3 3 NA
4 1  3
5 2 NA
6 3 NA

attach(tab)
aggregate(b, by=list(a), data=tab, FUN=mean, na.rm=TRUE)
  Group.1   x
1       1   2
2       2   2
3       3 NaN
Run Code Online (Sandbox Code Playgroud)

如果向量具有所有NA,我想要NA而不是NaN,即我想要输出

  Group.1   x
1       1   2
2       2   2
3       3  NA
Run Code Online (Sandbox Code Playgroud)

我尝试使用自定义函数:

adjmean=function(x) {if(all(is.na(x))) NA else mean(x,na.rm=TRUE)}
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

aggregate(b, by=list(a), data=tab, FUN=adjmean)

Error in FUN(X[[1L]], ...) : 
  unused argument (data = list(a = c(1, 2, 3, 1, 2, …
Run Code Online (Sandbox Code Playgroud)

aggregate r nan na

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

`plot()`中的选项`lty`无法正常工作

我试图将图形生成为中断线.但令我惊讶的lty=2是,函数中的选项plot()不起作用:

plot(1:10,lty=2) 
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

plot r

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

for循环中的局部变量?

是否可以在for循环中定义本地变量,以便无法在循环外访问它?在下面的简单示例中,我应该怎么做才能index在循环外定义?

input<-rnorm(10)
output<-rep(NA,10)

for(i in 1:10){
     index<-1:i
     output[i]<-sum(input[index])^2
     }
Run Code Online (Sandbox Code Playgroud)

for-loop r

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

标签 统计

r ×9

dplyr ×2

aggregate ×1

anova ×1

djvu ×1

document ×1

for-loop ×1

format ×1

highlight ×1

list ×1

na ×1

nan ×1

plot ×1

recursion ×1

subset ×1

time-series ×1