使用 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) 这是一个简单的问题,但它开始让我烦恼,我找不到解决方案....
我希望能够在使用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) 我有一个巨大的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 中的“顺序”在 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) 好奇,如果有人使用它.我在一个时间序列上做了一个简单的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中完成它的示例.
我有一个大约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> = && <=来设置日期范围,但这不起作用.有什么想法吗?
我正在尝试运行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)
希望这是有道理的.我很感激任何提示/建议.
我试图以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的数字.
有人知道如何解决这个问题吗?
我一直在R中训练700万行数据(41个功能)中的randomForest模型。这是一个示例调用:
myModel <-randomForest(RESPONSE〜。,data = mydata,ntree = 50,maxnodes = 30)
我肯定认为只有50棵树和30个终端节点,“ myModel”的内存占用量会很小。但是转储文件中有65兆。该对象似乎持有训练过程中的各种预测,实际和投票数据。
如果我只想要森林怎么办?我想要一个很小的转储文件,以后可以加载以快速做出预测。我觉得森林本身不应该那么大...
任何人都知道如何将这种吸盘剥离成我可以预测的东西吗?
r ×10
computation ×1
contrast ×1
data-mining ×1
data.table ×1
dataframe ×1
date ×1
digits ×1
for-loop ×1
lm ×1
loops ×1
paste ×1
plot ×1
regression ×1
stata ×1