小编mne*_*nel的帖子

为什么更改对比度类型会更改 R lm 摘要中的行标签?

使用 R 中的默认对比度(contr.treatment),线性模型对象的摘要根据级别名称给出行名称。当我将对比度更改为 contr.sum 时,线性模型对象的摘要根据组合数字给出行名称。

对于下面的示例代码,处理对比的行名称是 xa xb xc xd xe,对于总对比,它们是 x1 x2 x3 x4 x5。

除了手动重命名行之外,有没有办法使这些行为相同?

例子:

y <- rnorm(10, 0, 1)
x <- factor(rep(letters[1:5], each = 2))

options(contrasts = c("contr.treatment", "contr.poly"))
summary(lm(y ~ x))

options(contrasts = c("contr.sum", "contr.poly"))
summary(lm(y ~ x))
Run Code Online (Sandbox Code Playgroud)

r contrast lm

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

当使用paste或paste0时,保持0.0

这是一个简单的问题,但它开始让我烦恼,我找不到解决方案....

我希望能够在使用paste或paste0时将它作为输出保留0.0,所以如果我有以下内容:

y <- c(-1.5,-1.0,-0.5,0.0,0.5,1.0,1.5)
> y
[1] -1.5 -1.0 -0.5  0.0  0.5  1.0  1.5
paste0("x",y,"x")
Run Code Online (Sandbox Code Playgroud)

我明白了:

[1] "x-1.5x" "x-1x"   "x-0.5x" "x0x"    "x0.5x"  "x1x"    "x1.5x" 
Run Code Online (Sandbox Code Playgroud)

但想要:

[1] "x-1.5x" "x-1.0x"   "x-0.5x" "x0.0x"    "x0.5x"  "x1.0x"    "x1.5x" 
Run Code Online (Sandbox Code Playgroud)

r digits paste significant-digits

5
推荐指数
3
解决办法
2648
查看次数

在r中重新编码数据

我有一个巨大的1000 x 100000数据帧,如下所示重新编码为数字值.

myd <- data.frame (v1 = sample (c("AA", "AB", "BB", NA), 10, replace = T),
                   v2 = sample (c("CC", "CG", "GG", NA), 10, replace = T),
                   v3 = sample (c("AA", "AT", "TT", NA) , 10, replace = T),
                   v4 = sample (c("AA", "AT", "TT", NA) , 10, replace = T),
                   v5 = sample (c("CC", "CA", "AA", NA) , 10, replace = T)
                   )
myd
     v1   v2   v3   v4   v5
1    AB   CC <NA> <NA>   AA
2    AB   CG …
Run Code Online (Sandbox Code Playgroud)

r dataframe data.table

5
推荐指数
2
解决办法
1744
查看次数

是否有与 Stata 'order' 命令等效的 R 函数?

R 中的“顺序”在 Stata 中似乎是“排序”。例如,这是一个数据集(仅列出变量名称):

v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18

这是我期望的输出:

v1 v2 v3 v4 v5 v7 v8 v9 v10 v11 v12 v17 v18 v13 v14 v15 v6 v16

在 R 中,我有两种方法:

data <- data[,c(1:5,7:12,17:18,13:15,6,16)]
Run Code Online (Sandbox Code Playgroud)

或者

names <- c("v1", "v2", "v3", "v4", "v5", "v7", "v8", "v9", "v10", "v11", "v12",  "v17", "v18", "v13", "v14", "v15", "v6", "v16")
data <- data[names]
Run Code Online (Sandbox Code Playgroud)

为了在 Stata 中获得相同的输出,我可以运行 2 行:

order v17 v18, before(v13) …
Run Code Online (Sandbox Code Playgroud)

r stata

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

使用TTR包计算指数移动平均线

好奇,如果有人使用它.我在一个时间序列上做了一个简单的EMA操作.但是不能很好地和解.

我读到更新常量的值= 2 /(N + 1).我定义了x = 1:20,并且做了EMA(x,5).然后我使用递归计算进行了EMA计算.这两个结果并没有真正对齐

该函数返回

EMA(x,5)
 [1] NA NA NA NA  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
Run Code Online (Sandbox Code Playgroud)

我的小东西给了我,

EMA
 [1]  1.000000  1.333333  1.888889  2.592593  3.395062  4.263374  5.175583  6.117055  7.078037  8.052025  9.034683 10.023122 11.015415 12.010276 13.006851 14.004567
[17] 15.003045 16.002030 17.001353 18.000902
Run Code Online (Sandbox Code Playgroud)

r computation

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

按日期范围分组

这似乎是一项简单的任务,但我在执行它时遇到了困难,并且找到了如何在R中完成它的示例.

我有一个大约75K记录的数据框.一个领域有日期,可以追溯到大约11年.我已经使用以下代码去除小时分钟秒,所以我只有一个月 - 一天

 dat$date=round.POSIXt(dat$date,units="day")
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试根据日期创建一个新的字段"FiscalYear",如果日期是在2008-07-01和2009-06-30之间,那么它将在2009-07-01和2010之间分配给... 06-30被分配到2010财年等......

我一直在尝试的方法是使用ifelse> = && <=来设置日期范围,但这不起作用.有什么想法吗?

r date

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

使用R在循环中通过协变量循环

我正在尝试运行96次回归并将结果保存为96个不同的对象.为了使事情复杂化,我希望模型中某个协变量的下标也改变96次.我差点解决了这个问题,但不幸的是我遇到了问题.到目前为止的代码是,

for(i in 1:96){

  assign(paste("z.out", i,sep=""), lm(rMonExp_EGM~ TE_i + Month2+Month3+Month4+Month5+Month6+Month7+Month8+Month9+
  Month10+Month11+Month12+Yrs_minus_2004 + 
  as.factor(LGA),data=Pokies))

}
Run Code Online (Sandbox Code Playgroud)

这适用于对象创建方(例如我有z.out1 - z.out96),但我似乎无法让协变量上的下标也改变.

我在数据集中有96个变量叫做TE_1,TE_2 ...... TE_96.因此,TE_上的下标,"i"需要改变以对应于我创建的每个对象.也就是说,z.out1应该保存此模型的结果:

z.out1 <- lm(rMonExp_EGM~ TE_1 + Month2+Month3+Month4+Month5+Month6+Month7+Month8+Month9+
  Month10+Month11+Month12+Yrs_minus_2004 + as.factor(LGA),data=Pokies)
Run Code Online (Sandbox Code Playgroud)

并且z.out96应该是:

z.out96 <- lm(rMonExp_EGM~ TE_96+ Month2+Month3+Month4+Month5+Month6+Month7+Month8+Month9+
  Month10+Month11+Month12+Yrs_minus_2004 + as.factor(LGA),data=Pokies)
Run Code Online (Sandbox Code Playgroud)

希望这是有道理的.我很感激任何提示/建议.

loops for-loop regression r

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

两个刻度在同一轴上

我不确定是否有可能做我想做的事.我想用两个比例绘制一个x轴,如下图所示.非常感谢,

在此输入图像描述

r

5
推荐指数
2
解决办法
256
查看次数

R中具有不同颜色的直方图样图

我试图以data直方图样式绘制矢量.这总是很容易,因为plot(data, type="h")我正是我想要的.但是,颜色存在问题.我的矢量data看起来像这样:

 data = c(1,2,2,3,1,1,2,3,1,2,2,3, ... )
Run Code Online (Sandbox Code Playgroud)

我想看到的是,每个1都是用一种颜色绘制的,每种颜色都是2不同的颜色,每种颜色都是相同的3.我试图实现这一目标

 plot(data, type="h", col=c("red","blue","green")
Run Code Online (Sandbox Code Playgroud)

但它失败了R圈在颜色矢量上,所以第一个栏是红色,第二个是蓝色,第三个是绿色,第四个是红色,依此类推.

在一般的解决方案中,我非常感兴趣,因为我的data向量并不总是由数字组成1,2而且3.在许多情况下,向量保存从1到6的数字.

有人知道如何解决这个问题吗?

plot r

5
推荐指数
2
解决办法
6558
查看次数

如何缩小randomForest模型的大小?

我一直在R中训练700万行数据(41个功能)中的randomForest模型。这是一个示例调用:

myModel <-randomForest(RESPONSE〜。,data = mydata,ntree = 50,maxnodes = 30)

我肯定认为只有50棵树和30个终端节点,“ myModel”的内存占用量会很小。但是转储文件中有65兆。该对象似乎持有训练过程中的各种预测,实际和投票数据。

如果我只想要森林怎么办?我想要一个很小的转储文件,以后可以加载以快速做出预测。我觉得森林本身不应该那么大...

任何人都知道如何将这种吸盘剥离成我可以预测的东西吗?

artificial-intelligence r data-mining random-forest

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