小编李哲源*_*李哲源的帖子

线性回归和R中的分组

我想使用lm()函数在R中进行线性回归.我的数据是一年一度的时间序列,一年(22年),另一个州(50个州).我想为每个状态拟合一个回归,以便最后我有一个lm响应的向量.我可以想象为每个状态做循环然后在循环内进行回归并将每个回归的结果添加到向量.但是,这似乎不像R一样.在SAS中我会做一个'by'语句,在SQL中我会做'group by'.R的做法是什么?

regression r linear-regression lm

88
推荐指数
9
解决办法
6万
查看次数

是否有一个C预处理器根据定义/未定义的值消除#ifdef块?

原始问题

我想要的不是标准的C预处理器,而是可以从某个地方接受的变体 - 可能是命令行通过-DNAME1和-UNAME2选项 - 定义了哪些宏的规范,然后消除了死码.

通过一些例子可能更容易理解我所追求的内容:

#ifdef NAME1
#define ALBUQUERQUE "ambidextrous"
#else
#define PHANTASMAGORIA "ghostly"
#endif
Run Code Online (Sandbox Code Playgroud)

如果命令是使用'-DNAME1'运行的,则输出将为:

#define ALBUQUERQUE "ambidextrous"
Run Code Online (Sandbox Code Playgroud)

如果命令是使用'-UNAME1'运行的,则输出将为:

#define PHANTASMAGORIA "ghostly"
Run Code Online (Sandbox Code Playgroud)

如果命令是在没有选项的情况下运行的,则输出将与输入相同.

这是一个简单的例子 - 我希望代码也可以处理更复杂的情况.

用现实世界但仍然简单的例子来说明:

#ifdef USE_VOID
#ifdef PLATFORM1
#define VOID void
#else
#undef VOID
typedef void    VOID;
#endif /* PLATFORM1 */
typedef void *  VOIDPTR;
#else
typedef mint     VOID;
typedef char *  VOIDPTR;
#endif /* USE_VOID */
Run Code Online (Sandbox Code Playgroud)

我想运行命令-DUSE_VOID -UPLATFORM1并获取输出:

#undef VOID
typedef void    VOID;
typedef void *  VOIDPTR;
Run Code Online (Sandbox Code Playgroud)

另一个例子:

#ifndef DOUBLEPAD
#if …
Run Code Online (Sandbox Code Playgroud)

c c++ preprocessor

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

线性回归在R中具有已知的固定截距

我想用R中的lm()函数计算线性回归.另外我想得到一个回归的斜率,我明确地给出了截距lm().

我在互联网上找到了一个例子,我试图阅读R-help"?lm"(不幸的是我无法理解它),但我没有成功.谁能告诉我我的错误在哪里?

lin <- data.frame(x = c(0:6), y = c(0.3, 0.1, 0.9, 3.1, 5, 4.9, 6.2))
plot (lin$x, lin$y)

regImp = lm(formula = lin$x ~ lin$y)
abline(regImp, col="blue")

# Does not work:
# Use 1 as intercept
explicitIntercept = rep(1, length(lin$x))
regExp = lm(formula = lin$x ~ lin$y + explicitIntercept)
abline(regExp, col="green")
Run Code Online (Sandbox Code Playgroud)

感谢你的帮助.

regression r linear-regression lm

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

predict.lm()在测试数据中具有未知因子级别

我正在拟合一个模型来分析数据和预测.如果newdatapredict.lm()包含单个因子水平来说是未知的模型,所有predict.lm()失败,并返回一个错误.

是否有一种很好的方法可以predict.lm()返回模型知道的那些因子水平的预测值和未知因子水平的NA,而不仅仅是错误?

示例代码:

foo <- data.frame(response=rnorm(3),predictor=as.factor(c("A","B","C")))
model <- lm(response~predictor,foo)
foo.new <- data.frame(predictor=as.factor(c("A","B","C","D")))
predict(model,newdata=foo.new)
Run Code Online (Sandbox Code Playgroud)

我希望最后一个命令返回对应于因子级别"A","B"和"C"的三个"真实"预测,并且NA对应于未知级别"D".

regression r linear-regression lm

33
推荐指数
3
解决办法
3万
查看次数

R:来自lm对象的标准错误输出

我们得到了一个lm对象,并希望提取标准错误

lm_aaa<- lm(aaa~x+y+z)
Run Code Online (Sandbox Code Playgroud)

我知道函数摘要,名称和系数.但是,摘要似乎是手动访问标准错误的唯一方法.你知道我怎么能输出se吗?

谢谢!

regression r standard-error lm

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

如何调试"对比只能应用于具有2级或更多级别的因素"错误?

以下是我正在使用的所有变量:

str(ad.train)
$ Date                : Factor w/ 427 levels "2012-03-24","2012-03-29",..: 4 7 12 14 19 21 24 29 31 34 ...
 $ Team                : Factor w/ 18 levels "Adelaide","Brisbane Lions",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Season              : int  2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ...
 $ Round               : Factor w/ 28 levels "EF","GF","PF",..: 5 16 21 22 23 24 25 26 27 6 ...
 $ Score               : int  137 …
Run Code Online (Sandbox Code Playgroud)

regression r lm glm r-faq

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

为什么"矢量化"这个简单的R循环会产生不同的结果?

也许这个问题非常愚蠢.

我试图"矢量化"以下循环:

set.seed(0)
x <- round(runif(10), 2)
# [1] 0.90 0.27 0.37 0.57 0.91 0.20 0.90 0.94 0.66 0.63
sig <- sample.int(10)
# [1]  1  2  9  5  3  4  8  6  7 10
for (i in seq_along(sig)) x[i] <- x[sig[i]]
x
# [1] 0.90 0.27 0.66 0.91 0.66 0.91 0.94 0.91 0.94 0.63
Run Code Online (Sandbox Code Playgroud)

我认为这很简单,x[sig]但结果并不匹配.

set.seed(0)
x <- round(runif(10), 2)
x[] <- x[sig]
x
# [1] 0.90 0.27 0.66 0.91 0.37 0.57 0.94 0.20 0.90 0.63
Run Code Online (Sandbox Code Playgroud)

怎么了?


备注 …

loops for-loop r vectorization

18
推荐指数
1
解决办法
1970
查看次数

与gcc和-lm链接并没有在Ubuntu上定义ceil()

我目前正在使用gcc进行编译,我需要使用<math.h>.问题是它无法识别库.我也尝试过-lm,没有.我试图使用的功能是ceil(),我得到以下错误:

: undefined reference to `ceil'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的Ubuntu和math.h.我尝试-lm在不同的计算机上使用它,它完美地工作.

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


我确实包含了<math.h>.另外,我使用的命令是:

gcc -lm -o fb file.c
Run Code Online (Sandbox Code Playgroud)

c math.h

15
推荐指数
3
解决办法
3万
查看次数

可视化R函数依赖项

想要可视化包依赖关系的人有很多资源,但我特别感兴趣的是可视化包中的函数以及它们之间的依赖关系.有一些像miniCRAN这样的工具用于绘制包依赖关系,但是包中是否有可用于图函数依赖的东西?

例如,假设我的包中只有两个函数.

func1 <- function(n) return(LETTERS[n])
func2 <- function(n) return(func1(n%%26+1))
Run Code Online (Sandbox Code Playgroud)

然后我只想要一个带有两个标记节点的图形和连接它们的边缘,描绘了func2on 的依赖性func1.

我认为有很多软件包具有非常强大的功能依赖性,这样的实用程序可以帮助理解/组织/重构/等.

谢谢.

dependencies r graph function

15
推荐指数
3
解决办法
3042
查看次数

plot.lm():提取诊断QQ图中标注的数字

对于下面的简单示例,您可以看到在随后的图中确定了某些点.如何提取这些图中识别的行号,尤其是正常QQ图?

set.seed(2016)
maya <- data.frame(rnorm(100))
names(maya)[1] <- "a"
maya$b <- rnorm(100)
mara <- lm(b~a, data=maya)
plot(mara)
Run Code Online (Sandbox Code Playgroud)

我尝试使用str(mara)来查看我是否能在那里找到一个列表,但是我看不到那里的Normal QQ图中的任何数字.思考?

plot regression r linear-regression lm

14
推荐指数
1
解决办法
1116
查看次数