说,我有以下递归列表:
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)
但这不起作用.
如何在保持列表的原始结构的同时实现替换?
在某些情况下,是否有一种在dplyr中使用重命名功能的聪明方法是不存在要重命名的列?
例如,我希望以下内容不会导致错误
mtcars%>%rename(miles_per_gallon=mpg,missing_varible=foo)
Run Code Online (Sandbox Code Playgroud)
(结果如下:错误:未知变量:foo.)
而是完成所有可能重命名的数据框.
目前,我在重命名之前明确检查特定列是否存在
谢谢
伊恩
使用包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) 我有一些'djvu'格式的书籍,想在'pdf'文件中使用突出显示.我做了一些研究,但没有成功.是否可以突出显示'djvu'文档中的文字?还包括您的建议平台.
我正在尝试使用所谓的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) 我想在我的情节中添加一个文字,以便一个字母a显示为粗体.我从以下开始,但结果不是我需要的:
plot(1:5,axes=F)
mtext(c(only a should be bold),1:1,font=2)
Run Code Online (Sandbox Code Playgroud)
我该怎么做只做一个大胆的?
据我所知,当应用于具有一个解释变量的数据时,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) 我在计算聚合方法时遇到麻烦.请参阅以下代码:
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) 我试图将图形生成为中断线.但令我惊讶的lty=2是,函数中的选项plot()不起作用:
plot(1:10,lty=2)
Run Code Online (Sandbox Code Playgroud)
有人能帮我吗?
是否可以在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)