小编ari*_*lle的帖子

具有系数约束的线性回归

我正在尝试执行线性回归,对于这样的模型:

Y = aX1 + bX2 + c
Run Code Online (Sandbox Code Playgroud)

所以, Y ~ X1 + X2

假设我有以下响应向量:

set.seed(1)
Y <- runif(100, -1.0, 1.0)
Run Code Online (Sandbox Code Playgroud)

以下预测变量矩阵:

X1 <- runif(100, 0.4, 1.0)
X2 <- sample(rep(0:1,each=50))
X <- cbind(X1, X2)
Run Code Online (Sandbox Code Playgroud)

我想对系数使用以下约束:

a + c >= 0  
c >= 0
Run Code Online (Sandbox Code Playgroud)

所以对b没有约束.

我知道glmc包可以用来应用约束,但是我无法确定如何将它应用于我的约束.我也知道可以使用contr.sum,例如,所有系数总和为0,但这不是我想要做的.solve.QP()似乎是另一种可能性,meq=0可以使用设置使所有系数> = 0(同样,这里不是我的目标).

注意:解决方案必须能够处理响应向量Y中的NA值,例如:

Y <- runif(100, -1.0, 1.0)
Y[c(2,5,17,56,37,56,34,78)] <- NA
Run Code Online (Sandbox Code Playgroud)

r linear-regression quadratic-programming

6
推荐指数
1
解决办法
4353
查看次数

R:根据列名部分匹配计算行平均值

我有一个看起来像这样的表:

  er er.1 as as.1 as.2 rt op
a  1    6 90    8    6  4 87
b  1    8 56    7    5  5  9
c  8    7  6    4    5  9  6
d  1    0  8    6    4  3  6
e  9    7  2    4    3 89  7
Run Code Online (Sandbox Code Playgroud)

我想计算具有部分匹配名称的列之间的行平均值,以得到如下结果:

    er   as           rt     op
a   3.5  34.66666667  4      87
b   4.5  22.66666667  5      9
c   7.5  5            9      6
d   0.5  6            3      6
e   8    3            89     7
Run Code Online (Sandbox Code Playgroud)

我确实在这个问题上找到了一些有用的提示:

根据(部分)匹配列名计算行均值 …

r

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

R:从向量中提取非重复值(对于重复项不保留一个值)

我想保留矢量中的非重复值,但不保留重复值中的一个元素。unique()对此不起作用。都不会重复()。

例如:

> test <- c(1,1,2,3,4,4,4,5,6,6,7,8,9,9)
> unique(test)
[1] 1 2 3 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)

而我希望结果是:2,3,5,7,8

关于如何解决这个问题的任何想法?谢谢!

r

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

如何在Spyder中逐行运行python代码并包含loop / if语句内容

我通常使用RStudio在R中进行编码,当逐行运行代码时,如果运行循环的第一行,则循环的内容将随之运行。调试代码非常方便,例如能够逐行运行代码而无需手动选择整个循环。在Spyder中,如果我运行循环的第一行,它就那样运行,就好像我试图运行一个空循环一样,并给出一个错误。如何在Spyder中正确地逐行运行代码?我已经研究了问题,但没有找到答案。谢谢您的帮助!

python spyder

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

R提取第n个和第i个分隔符实例之间的字符串

我有一个字符串向量,类似于这个,但有更多的元素:

s <- c("CGA-DV-558_T_90.67.0_DV_1541_07", "TC-V-576_T_90.0_DV_151_0", "TCA-DV-X_T_6.0_D_A2_07", "T-V-Z_T_2_D_A_0", "CGA-DV-AW0_T.1_24.4.0_V_A6_7", "ACGA-DV-A4W0_T_274.46.0_DV_A266_07")
Run Code Online (Sandbox Code Playgroud)

我想使用一个函数来提取分隔符“_”的第 n 个和第 i 个实例之间的字符串。例如,第 2 个 (n = 2) 和第 3 个 (i = 3) 实例之间的字符串,得到这个:

[1] "90.67.0"  "90.0"     "6.0"      "2"        "24.4.0"   "274.46.0"
Run Code Online (Sandbox Code Playgroud)

或者如果 n = 4 且 i = 5"

[1] "1541" "151"  "A2"   "A"    "A"    "A266"
Run Code Online (Sandbox Code Playgroud)

有什么建议?感谢您的帮助!

regex r

4
推荐指数
1
解决办法
1458
查看次数

使用 awk 在匹配后连接行

我有一个如下所示的列表:

>aaa(+)
AAAAAAAAAA
>bbb(+)
BBBBBBBBBBBBBBBB
>ccc(-)
CCCCCCC
Run Code Online (Sandbox Code Playgroud)

我想使用 awk 在“(+)”或“(-)”之后加入下一行,并使用逗号分隔符,这样它看起来像这样:

>aaa(+),AAAAAAAAAAA
>bbb(+),BBBBBBBBBBBBBBBB
>ccc(-),CCCCCCC
Run Code Online (Sandbox Code Playgroud)

我已经尝试过以下操作(在 bash 中):

cat $file | awk '/(-)/||/(+)/{if (x)print x;x"";}{x=(!x)?$0:x","$0;}END{print x;}' > $new_file
Run Code Online (Sandbox Code Playgroud)

但这似乎给出了这样的结果:

>aaa(+),AAAAAAAAAAA
>aaa(+),AAAAAAAAAAA,>bbb(+),BBBBBBBBBBBBBBBB
>aaa(+),AAAAAAAAAAA,>bbb(+),BBBBBBBBBBBBBBBB,>ccc(-),CCCCCCC
Run Code Online (Sandbox Code Playgroud)

这显然不是我想做的。

任何帮助将不胜感激!

谢谢

bash awk

3
推荐指数
2
解决办法
1938
查看次数

在向量的每个其他元素上粘贴一个字符串

我有这样的矢量:

test <- c("a","b","c","d")
test
[1] "a" "b" "c" "d"
Run Code Online (Sandbox Code Playgroud)

我想将一个字符串,例如"_2"粘贴到矢量的每个其他元素上,以获得:

"a" "b_2" "c" "d_2"
Run Code Online (Sandbox Code Playgroud)

我试过这个命令:

ifelse(test %in% seq(1, length(test), 2), test, paste(test, "_2", sep=""))
Run Code Online (Sandbox Code Playgroud)

但这只是给了我:

"a_2" "b_2" "c_2" "d_2"
Run Code Online (Sandbox Code Playgroud)

这是错的.有关如何正确执行此操作的任何建议?谢谢!

r

2
推荐指数
1
解决办法
373
查看次数