我想在字符串中的特定位置插入一个额外的字符(或一个新字符串).例如,我想d
在第四个位置插入abcefg
以获取abcdefg
.
现在我正在使用:
old <- "abcefg"
n <- 4
paste(substr(old, 1, n-1), "d", substr(old, n, nchar(old)), sep = "")
Run Code Online (Sandbox Code Playgroud)
我可以为这个任务编写一个单行的简单函数,但我很好奇是否有一个现有的函数.
我想在循环中跳过错误(如果有的话)并继续下一次迭代.我想计算具有从{0,1,2}随机采样的元素的2乘2矩阵的100个逆矩阵.可以有一个奇异矩阵(例如,
1 0
2 0
Run Code Online (Sandbox Code Playgroud)
这是我的代码
set.seed(1)
count <- 1
inverses <- vector(mode = "list", 100)
repeat {
x <- matrix(sample(0:2, 4, replace = T), 2, 2)
inverses[[count]] <- solve(x)
count <- count + 1
if (count > 100) break
}
Run Code Online (Sandbox Code Playgroud)
在第三次迭代中,矩阵是单数的,代码停止运行并显示错误消息.在实践中,我想绕过这个错误并继续下一个循环.我知道我需要使用try
或tryCatch
功能,但我不知道如何使用它们.这里也提出了类似的问题,但它们都非常复杂,答案远远超出我的理解范围.如果有人能够专门为这个问题提供完整的代码,我真的很感激.
我有两组数据(x1,y1)和(x1,y2).我为每组进行了回归,并希望将它们绘制在同一个图上(包括点和回归线).这是我的代码
x1 <- 1:5
y1 <- x1 + rnorm(x1)
y2 <- x1 + 2 + rnorm(x1)
fit1 <- lm(y1 ~ x1)
fit2 <- lm(y2 ~ x1)
plot(x1, y1, pch = 1, ylim = c(min(y1, y2), max(y1, y2)), xlab = "x", ylab = "y")
points(x1, y2, pch = 2)
abline(fit1, lty = 1)
abline(fit2, lty = 2)
legend("topleft", legend = c("Line 1", "Line 2"), pch = c(1, 2), lty = c(1, 2))
Run Code Online (Sandbox Code Playgroud)
这就是我得到的.
我在传奇中真正想要的是将点和线并排放置而不是彼此叠加,这看起来应该是这样的.
任何建议都非常感谢!
我正在学习JAVA并键入以下DO ... WHILE示例.如果输入'q',程序将退出.它运行,但为什么我得到三行"请一键,然后按ENTER:"?
class DWDemo {
public static void main (String args[])
throws java.io.IOException {
char ch;
do {
System.out.println("Please a key followed by ENTER:");
ch = (char) System.in.read();
} while (ch != 'q');
}
}
Run Code Online (Sandbox Code Playgroud)
我想从C源代码创建一个DLL动态库,以便我可以在R中加载和使用它.我现在正在使用它
R CMD SHLIB foo.c
Run Code Online (Sandbox Code Playgroud)
在Windows 7命令行中.但什么都没发生.没有错误消息但没有创建dll文件.
我做了什么有什么问题?谢谢.
我想从R中的向量创建循环矩阵.循环矩阵是具有以下形式的矩阵.
1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1
Run Code Online (Sandbox Code Playgroud)
第二行与第一行相同,但最后一个元素位于开头,依此类推.
现在我有了矢量,比方说,(1,2,3,4),我想找到一种有效(快速)的方法来创建这个矩阵.在实践中,数字不是整数,可以是任何数字.
这就是我现在正在做的事情.
x <- 1:4
n <- length(x)
mat <- matrix(NA, n, n)
for (i in 1:n) {
mat[i, ] <- c(x[-(1:(n+1-i))], x[1:(n+1-i)])
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更快的方法来做到这一点?我需要一遍又一遍地生成这种矩阵.一步的小改进将产生很大的不同.谢谢.
假设我想生成一个介于 0 和 1 之间、间距为 0.1 的数组。在R中,我们可以做
> seq(0, 1, 0.1)
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Run Code Online (Sandbox Code Playgroud)
在Python中,由于numpy.arange
不包括右端,我需要向stop
.
np.arange(0, 1.01, 0.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
Run Code Online (Sandbox Code Playgroud)
但这似乎有点奇怪。是否可以强制numpy.arange
包含右端?或者也许其他一些功能可以做到这一点?
假设存在具有可能重复值的数值的向量
x <- c(1, 2, 3, 4, 5, 1, 2, 2, 3)
Run Code Online (Sandbox Code Playgroud)
我想创建另一个计数向量,如下所示.
x
.x
,第一个外观为1,第二个外观为2,依此类推.我想要的新矢量是
1, 1, 1, 1, 1, 2, 2, 3, 2
Run Code Online (Sandbox Code Playgroud)
我需要一个快速的方法,因为x
可能很长.
我想测试简单线性回归中的斜率是否等于零以外的给定常数.
> x <- c(1,2,3,4)
> y <- c(2,5,8,13)
> fit <- lm(y ~ x)
> summary(fit)
Call:
lm(formula = y ~ x)
Residuals:
1 2 3 4
0.4 -0.2 -0.8 0.6
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.0000 0.9487 -2.108 0.16955
x 3.6000 0.3464 10.392 0.00913 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.7746 on 2 degrees of freedom
Multiple R-squared: 0.9818, Adjusted R-squared: 0.9727 …
Run Code Online (Sandbox Code Playgroud) 我对如何使用 numpy.random 从给定分布(例如二项式)生成随机值感到有些困惑。我以为会是
import numpy as np
np.random.binomial(10, 0.3, 5)
Run Code Online (Sandbox Code Playgroud)
但是,NumPy 参考页面显示类似
from numpy.random import default_rng
rg = default_rng()
rg.binomial(10, 0.3, 5)
Run Code Online (Sandbox Code Playgroud)
两者似乎都运行良好。哪一个是正确的或更好的方法?如果有的话有什么区别?