> dummy <- data.frame(X = c(1, 2, 3, 4, 5, 5, 2, 6, 7, 2), Y = c(3, 2, 1, 4, 5, 6, 7, 3, 4, 2))
> dummy
X Y
1 1 3
2 2 2
3 3 1
4 4 4
5 5 5
6 5 6
7 2 7
8 6 3
9 7 4
10 2 2
Run Code Online (Sandbox Code Playgroud)
我有一个data.frame,由1到7的值组成.我想将1改为7(反之亦然),2改为6(反之亦然),3改为5(反之亦然),4是将保持为4.我基本上想要"反转"这些数字.我想过写一个for循环迭代每一列中的每个值并使用ifelse语句,但是我怎么能同时改变7到1和1到7?
> sample(c(2), 10, replace = TRUE, prob = 1)
Error in sample.int(x, size, replace, prob) :
incorrect number of probabilities
> sample(c(1), 10, replace = TRUE, prob = 1)
[1] 1 1 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)
在第一个例子中,我想2用替换对样本进行十次采样,每次都有概率= 1.我希望输出为2 2 2 2 2 2 2 2 2 2
但是,它似乎与矢量1?
x = [2, 1, 2, 0, 1, 2, 2]
Run Code Online (Sandbox Code Playgroud)
我想将以上列表拼接为的子列表length = [1, 2, 3, 1]。换句话说,我希望我的输出看起来像这样:
[[2], [1, 2], [0, 1, 2], [2]]
Run Code Online (Sandbox Code Playgroud)
我的第一个子列表的长度为1,第二个子列表的长度为2,依此类推。
values <- c(5, 3, 2, 2.9999, 2.9998, 2.9997, 2.99996, 2.9995, 2.9994, 2.9993,
9, 2, 1.9999, 2.9999, 2.9998, 2.9997, 2.99996, 2.9995, 2.9994, 2.9993)
Run Code Online (Sandbox Code Playgroud)
我有一串值,我想获得任何两个连续数字之间的差异低于某个容差水平的索引。
tol = 0.001
> which(abs(diff(values)) < tol)
[1] 4 5 6 7 8 9 12 14 15 16 17 18 19
Run Code Online (Sandbox Code Playgroud)
我想确保任意两个数字之间的差额满足至少连续5个值的公差等级,所以输出应该是这个样子(没有索引12了,因为即使之间的差异2和1.9999低于tol之间的差异1.9999和2.9999不低于tol,所以不满足连续 5 的数字规则)
4 5 6 7 8 9 14 15 16 17 18 19
Run Code Online (Sandbox Code Playgroud)
如何检查任意两个数字之间的差异是否小于至少 5 个连续值的容差水平?
让len = 3表示序列的长度。如何编写一个接收len和输出交替 1 和 -1 序列的函数?
对于示例,对于len = 3,我希望函数返回1 -1 1。如果len = 5,则1 -1 1 -1 1,依此类推。