我认为一个例子应该让事情变得清晰.
我有
a_1 = 6547
我想要一些将a_1变换为以下a_2的函数
a_2 = c(6,5,4,7)
> test = "23*45"
Run Code Online (Sandbox Code Playgroud)
我想test用符号分开*
我试过了...
> strsplit(test,'*')
Run Code Online (Sandbox Code Playgroud)
我得到了......
[[1]]
[1] "2" "3" "*" "4" "5"
Run Code Online (Sandbox Code Playgroud)
我的目标是:
[[1]]
[1] "23" "45"
Run Code Online (Sandbox Code Playgroud) A = c(1,2,3,2,1,2,2,2,1,2,3,2,1)
B = c(2,3,2,3,2,2,1,1,2,1,2,2,3)
mytable = table(A,B)
Run Code Online (Sandbox Code Playgroud)
找回两个向量的最佳解决方案是什么mytable?当然,它不会是完全相同的向量,但必须遵守A相比的顺序B.是否有意义?
使用foreach包,我期待以下行在大约10秒内运行
system.time(foreach (i=1:5, .combine='c') %do% {Sys.sleep(2);i})
user system elapsed
0.053 0.011 10.012
Run Code Online (Sandbox Code Playgroud)
并且以下行在大约2秒内运行
system.time(foreach (i=1:5, .combine='c') %dopar% {Sys.sleep(2);i})
user system elapsed
0.069 0.017 10.019
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我在Mac OSX上,我的机器有16个处理器,目前没有任何重量.我没有收到任何错误或警告信息.
目标
我正在尝试构建一个从"不完全均匀分布"中抽取特定数量的随机数的函数.
我称之为不完整的均匀分布?
我将不完整的均匀分布称为概率分布,其中X一系列边界内的每个值具有相同的拾取概率.换句话说,它是具有孔的均匀分布(其中概率为零),如下所示
x = list(12:25, 34:54, 67:90, 93:115)
y = 1/sum(25-12, 54-34, 90-67, 115-93)
plot(y=rep(y, length(unlist(x))), x=unlist(x), type="n", ylab="Probability", xlab="X")
for (xi in x)
{
points(xi,rep(y, length(xi)), type="l", lwd=4)
}
Run Code Online (Sandbox Code Playgroud)
难看的解决方案
这是一个缓慢而丑陋的解决方案
IncompleteUnif = function(n,b)
{
#################
# "n" is the desired number of random numbers
# "b" is a list describing the boundaries within which a random number can possibly be drawn.
#################
r = c() # Series of random numbers to return
for (ni …Run Code Online (Sandbox Code Playgroud) 我想创建一个带有两个按钮的 zenity 对话框窗口,仅作为用户输入。
下面创建一个带有两个按钮的窗口,但有一个文本输入空间
zenity --entry --title="" --text "Choose A or B" --ok-label="B" --cancel-label="A"
Run Code Online (Sandbox Code Playgroud)
下面创建一个只有一个按钮的窗口
zenity --info --title="" --text "Choose A or B" --ok-label="B"
Run Code Online (Sandbox Code Playgroud) 每次打开R控制台时,随机种子都设置为相同的值.在我的电脑上(在你的机器上可能是相同的),如果我跑rnorm(1),我总是0.1777571在第一次通话时.
我尝试通过添加类似的东西,使用计算机当前时间自动设置随机种子
set.seed(
as.integer(
as.numeric(
gsub("[^0-9]","",paste(format(Sys.time(), "%Y %X %x")))
)%%.Machine$integer.max
)
)
Run Code Online (Sandbox Code Playgroud)
在文件中,.Rprofile但它不会改变任何东西.第一次打电话rnorm(1)总是回来0.1777571.
如何自动将随机种子设置为计算机当前时间?
编辑
我直接在终端上打开R会话.我只是点击r并没有显式加载任何以前的工作区.
来自数据表d,例如
require(data.table)
d = data.table(a = 1:4, b = 11:14, c = 21:24, group = c(1,1,2,2))
Run Code Online (Sandbox Code Playgroud)
我想对所有变量进行汇总,这些变量的名称varsToSum通过的唯一值存储在向量中group。
varsToSum = c("a", "b")
Run Code Online (Sandbox Code Playgroud)
对于上述d和varsToSum,预期结果为
d[,list(a = sum(a), b = sum(b)),list(group)]
group a b
1: 1 3 23
2: 2 7 27
Run Code Online (Sandbox Code Playgroud)
相关文章:
class A
{
char c; // c represents a value varying from 0 to 2^7-1 (I don't need a bigger range)
bool b; // b is a boolean value
}
Run Code Online (Sandbox Code Playgroud)
类A使用 2 个字节。但是,由于c永远不会获得大于 2^7-1 的值(如注释中所指定),c因此可以使用of 字节的位之一来表示布尔值b。就像是
class A
{
unsigned char x; // x represents both a value varying from 0 to 2^7-1 and a boolean value
public:
A(unsigned char c, bool b)
{
assert(c <= 127);
x = c;
if (b) …Run Code Online (Sandbox Code Playgroud) package main
import (
"errors"
"fmt"
)
type myError struct{ err error }
func (e myError) Error() string { return e.err.Error() }
func new(msg string, args ...any) error {
return myError{fmt.Errorf(msg, args...)}
}
func (e myError) Unwrap() error { return e.err }
func (e myError) As(target any) bool { return errors.As(e.err, target) }
func (e myError) Is(target error) bool { return errors.Is(e.err, target) }
func isMyError(err error) bool {
target := new("")
return errors.Is(err, target)
}
func asMyError(err error) (error, …Run Code Online (Sandbox Code Playgroud) r ×7
random ×2
bash ×1
c++ ×1
data.table ×1
distribution ×1
equality ×1
evaluation ×1
foreach ×1
go ×1
memory ×1
r-table ×1
random-seed ×1
split ×1
string ×1
vector ×1
zenity ×1