在R中使用model.matrix获得函数的不同结果

以色列

我正在尝试在函数中使用model.matrix(我不会显示所有函数,仅显示感兴趣的部分),但是我注意到当此命令在函数内部使用时,model.matrix的结果是不同的。这是代码:

df <- data.frame(a=1:4, b=5:8, c= 9:12)

model.matrix(a~.,data=df)
#The outcome is:
(Intercept) b  c
1           1 5  9
2           1 6 10
3           1 7 11
4           1 8 12
attr(,"assign")
[1] 0 1 2
#Using model.matrix inside in a function
#Entries for function are a dataframe and a dependent var.
fun1 <- function(DF,vdep){
model.matrix(vdep ~.,data=DF)
}

fun1(df,df$a)
  (Intercept) a b  c
1           1 1 5  9
2           1 2 6 10
3           1 3 7 11
4           1 4 8 12
attr(,"assign")
[1] 0 1 2 3    
#As you can see the outcome includes dependent var (a).

为什么这些结果不同?谢谢。

罗曼·卢斯特里克(Roman Lustrik)

首先,您正在“退缩”(因为没有更好的用语)而a反对其他所有东西。在函数内部,您正在vdep对其他所有事物进行回归,包括a您的功能本质上只是在做model.matrix(1:4 ~.,data=df)公式参数是一个“字符串”,在您看到变量时不会识别它们。

您可以按以下方式修改功能

fun2 <- function(DF,vdep){
  model.matrix(as.formula(paste(vdep, "~ .")), data = DF)
}  

fun2(df, "a")

  (Intercept) b  c
1           1 5  9
2           1 6 10
3           1 7 11
4           1 8 12
attr(,"assign")
[1] 0 1 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java和golang中使用AES时获得不同的结果(密文)

获得相同的结果,但使用不同类型的循环

使用ggplot和基本绘图功能获得不同的结果

如何使用R从符号回归中获得函数结果

在R中使用随机森林预测得到的不同结果

使用Sparklyr和Dplyr时获得不同的结果

在r中使用atop函数时获得恒定的文本大小

使用RDD和DataFrames获得不同的结果

在MATLAB中使用均值函数会产生不同的结果

在R中使用基于具有不同对比度的model.matrix的predict.lm

如何在ArrayFormula中使用COUNTUNIQUE函数并获得范围结果?

使用%dopar%和%do%获得不同的结果

当classProbs = TRUE时,在R中使用Caret对SVM的不同结果

如何在R的性能包中使用check_model函数指定参数?

如何在php中使用if / else更改变量的值以获得不同的期望结果?

使用多线程在不同的运行中获得不同的结果

FuelPHP基础,在View中使用Model结果

在glm中使用什么函数来获得与此函数相同的结果

为什么我无法在MySQL中使用不同的行获得结果?

如何在codeigniter中使用嵌套的选择查询以使每个查询获得不同的结果

在R中使用函数

在Windows和Linux中使用R获得不同的结果

如何使用 Linq 获得按属性过滤的不同结果

在 mysql 中使用更多条件获得不同的结果

Flutter - 如何使用相同的未来获得不同的结果?

在 C# 中使用相同的正则表达式模式获得不同的结果

在 R 中使用 runif 的不同结果

在不同的操作系统中使用相同版本的 R 的不同 Set.seed 示例函数结果

在 T-SQL 和 LINQ (EF Core) 中使用相同的查询获得不同的结果