gpt4 book ai didi

R 逻辑运算符 - 何时使用感叹号与破折号(!x 和 -x)?

转载 作者:行者123 更新时间:2023-11-30 09:19:56 24 4
gpt4 key购买 nike

例如,考虑以下分割数据的方法...

set.seed(1)
train=sample(1:nrow(x),size=nrow(x)/2)
test=(-train)
y.test=y[test]

set.seed(1)
train=sample(1:nrow(x),size=nrow(x)/2)
test=(!train)
y.test=y[test]

我继续!算子尝试在训练集上拟合岭回归模型,并使用 λ = 4 评估其在测试集上的 MSE。

ridge.mod=glmnet(x[train,],y[train],alpha=0,lambda=grid,thresh=1e-12)
ridge.pred=predict(ridge.mod,s=4,newx=x[test,])
Warning message:
In cbind2(1, newx) :
number of rows of result is not a multiple of vector length (arg 1)

当我使用 !train 而不是 -train 时到底发生了什么?使用破折号运算符时我没有收到错误。

最佳答案

查看您的测试变量。在第一种情况下,您将得到一堆负整数,在 R 中,它们从向量中删除指定的元素:

> (1:10)[-5]
[1] 1 2 3 4 6 7 8 9 10

在第二种情况下,您将数字视为 bool /逻辑值,因此它们都是 TRUE,而 ! 使它们全部为 FALSE。

> (1:10)[c(FALSE, FALSE)]
integer(0)

没那么有用...

关于R 逻辑运算符 - 何时使用感叹号与破折号(!x 和 -x)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43687621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com