假设我想在给定正/负1的预生成矩阵(100x3)的情况下创建n = 3个随机游走路径(路径长度= 100).第一条路径从10开始,第二条路径从20开始,第三条路径从30开始:
set.seed(123)
given.rand.matrix <- replicate(3,sign(rnorm(100)))
path <- matrix(NA,101,3)
path[1,] = c(10,20,30)
for (j in 2:101) {
path[j,]<-path[j-1,]+given.rand.matrix[j-1,]
}
path[2:101,]<-path[1:100,]+given.rand.matrix
set.seed(123)
given.rand.matrix <- replicate(3,sign(rnorm(100)))
path <- matrix(NA,101,3)
path[1,] = c(10,20,30)
for (j in 2:101) {
path[j,]<-path[j-1,]+given.rand.matrix[j-1,]
}
最终值(给定种子和兰特矩阵)是14,6,34 ......这是期望的结果......但......
问题:有没有办法对for循环进行矢量化?问题是计算时路径矩阵尚未完全填充.因此,替换循环
path[2:101,]<-path[1:100,]+given.rand.matrix
主要返回NAs.我只是想知道这种类型的for循环在R中是否可以避免.
非常感谢你提前.
我是R的新手,我正在努力完成以下任务efficiently.
我有一个data.frame,x与列:start,end,val1,val2,val3,val4.列按照排序/排序start.
对于每一个start,首先我必须找到x该共享中的所有条目相同start.由于列表是有序的,因此它们将是连续的.如果特定start只出现一次,那么我忽略它.然后,对于具有相同条目的这些条目,start假设有一个特定start条目,则有3个条目,如下所示:
条目 start=10
start end val1 val2 val3 val4 10 25 8 9 0 0 10 55 15 200 4 9 10 30 4 8 0 1
然后,我必须一次取2行并fisher.test在2x4矩阵上执行val1:4.那是,
row1:row2 => fisher.test(matrix(c(8,15,9,200,0,4,0,9), nrow=2)) row1:row3 => fisher.test(matrix(c(8,4,9,8,0,0,0,1), nrow=2)) row2:row3 = …
我正在为我的数据集应用guantile回归(使用R).使用不同的分位数回归线(taus < - c(0.05,0.25,0.75,0.95))很容易产生漂亮的散点图.
当我想为这些分位数中的每一个产生p值(为了查看每个回归线的统计显着性)时出现问题.对于中值分位数(tau = 0.5),这不是问题,但是当涉及例如tau = 0.25时,我得到以下错误消息:
>QRmodel<-rq(y~x,tau=0.25,model=T)
>summary(QRmodel,se="nid")
Error in summary.rq(QRmodel, se = "nid") : tau - h < 0: error in summary.rq
Run Code Online (Sandbox Code Playgroud)
这可能是什么原因?
另外:建议提及有关分位数回归模型结果的p值和系数,或者仅仅显示情节图片并根据该图片讨论结果是否足够?
最好的问候,沮丧的人
这是我遇到的一个问题:
示例数据
df <- data.frame(1,2,3,4,5,6,7,8)
df <- rbind(df,df,df,df)
Run Code Online (Sandbox Code Playgroud)
我想要做的是在第一行中定义的data.frame中找到1,2,3与4,5,6的chisq.test的p.value.
让我们试试吧:
chisq.test(c(1,2,3),c(4,5,6))$p.value ## this works.
Run Code Online (Sandbox Code Playgroud)
但是当我尝试通过调用列/行来实现它时...
chisq.test(df[1,1:3],df[1,4:6])$p.value
Run Code Online (Sandbox Code Playgroud)
给出:complete.cases(x,y)中的错误:并非所有参数都具有相同的长度
有趣,因为这似乎不是真的:
length(df[1,1:3])
length(df[1,4:6])
Run Code Online (Sandbox Code Playgroud)
有关如何更改符号以获得所需结果的任何想法?