小编Car*_*oft的帖子

如何从非均匀的2D位置插入到常规网格?

我有一个非均匀定位的图像样本,并希望插入到常规网格,因为(除其他外)大多数图像图形函数需要一个规则的网格.我注意到有一些MatLab函数(例如参见随机像素的图像插值),显然会这样做,但找不到一个R-package.
这是一个简单的例子.

#make up some 2D func
y<-matrix(rep(1:10,10) -.5 + runif(100),nrow=10)
x<-matrix(rep(1:10,10) -.5 + runif(100),nrow=10)
inmat<-sin(x) + cos(y)
Run Code Online (Sandbox Code Playgroud)

因此,值inmat在随机位置上.我想某种outmat<-interpolate(inmat,x,y,gridx,gridy)函数,其中inmat,xy或者是所有矩阵或全部向量(展开矩阵).

我也看到SciPy有http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html这样做.包中是否有这样的功能,R还是需要从端口SciPyMatLab代码中移植?

matlab r scipy spatial-interpolation

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

赋值给具有重复索引的矩阵的子集

不确定这是否有资格获得R-Inferno中的条目,但有人可以评论以下替换工作方式背后的逻辑吗?

foo<-matrix(1:6,2)
bar<-foo[2,c(1,3,1)]
bar
# [1] 2 6 2
foo[2,c(1,3,1)]<-foo[2,c(1,3,1)]+5
foo
#      [,1] [,2] [,3]
# [1,]    1    3    5
# [2,]    7    4   11
Run Code Online (Sandbox Code Playgroud)

我的问题是:生成时bar,重复的坐标在输出重复的元素的结果,但修改时foo,重复的坐标并不会导致重复加入操作.(相比之下,for(j in c(1,3,1) ) foo[2,j]<-foo[2,j]+5确实如此).为什么以及如何确切地[<-忽略了重复索引?

r subset

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

从文本到数字的转换可能不一致

字符串的转换比较as.numeric它如何可以这样完成read.fwf.

as.numeric("457")  # 457
as.numeric("4 57") # NA with warning message
Run Code Online (Sandbox Code Playgroud)

现在从包含"5 7 12 4"的文件"fwf.txt"中读取.

foo<-read.fwf('fwf.txt',widths=c(5,5),colClasses='numeric',header=FALSE)
  V1  V2
1 57 124

foo<-read.fwf('fwf.txt',widths=c(5,5),colClasses='character',header=FALSE)
     V1    V2
1   5 7  12 4
Run Code Online (Sandbox Code Playgroud)

现在,我将注意到在"数字"版本中,read.fwf连接的方式与Fortran相同.我只是有点惊讶它没有抛出错误或NA以同样的方式as.numeric.谁知道为什么?

r type-conversion

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

如何检查修改后的函数形式

在我彻底破坏事物的过程中,请考虑:

gbar<-function(x,y,x,a) x+2*y-4*a
Error: repeated formal argument 'x' on line 1
Run Code Online (Sandbox Code Playgroud)

R 正确检查我定义的函数是否违法正式.

但如果我手动搞砸了:

 ffoo<-function(x,y,a) x+2*y-4*a
formals(ffoo)<-c(x=7, formals(ffoo))
Run Code Online (Sandbox Code Playgroud)

然后我只会在某些情况下发现某些事情是无效的. ffoo(3,4,5,6)将会正确执行(虽然可能没有给我我预期的答案),也将如此ffoo(y=3,a=2); 然后ffoo(x=5,y=3,a=2)会抛出关于模糊参数名称的错误.

那么:是否有任何base-R或高级实用程序包具有对formals现有函数进行"完整性"检查的功能?

r

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

R - 速度优化和国际象棋排名

嗨,您好!

我正在尝试计算6种不同技能(C1,C2,... C6)中的一些玩家的玩家国际象棋排名.我有一个巨大的游戏数据框(数据)看起来像这样(头(数据)).在这个游戏中,一个人(用户)选择在另外两个人(p1/p2)之间获胜.

row.names   user    p1  p2  skill   win looser       time
---------------------------------------------------------
2             KE    CL  HK     C1    CL     HK  433508371
25            KE    HK  JT     c1    HK     JT  433508401
35            KE    AB  JT     C1    AB     JT  433508444
110           NF    IP  HE     C1    HE     IP  433508837
78            NF    IP  AS     C1    AS     IP  433508848
82            NF    IT  CV     C1    CV     IT  433508860
Run Code Online (Sandbox Code Playgroud)

在另一个表格(old_users)中,我跟踪所有玩家在6种技能中的国际象棋得分(head(old_users))

    user    C1    C2    C3    C4    C5    C6                                    
1     BD  1200  1200  1200  1200  1200  1200                                    
2     NF  1200  1200 …
Run Code Online (Sandbox Code Playgroud)

algorithm optimization performance chess r

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

md5哈希计算函数失败

我正在尝试编写一个 md5 哈希函数而不R调用任何 C 例程。虽然我的代码执行得很好,但输出永远不会匹配tools::md5sum(它确实与各种在线文档中提供的示例匹配)。我怀疑某个地方存在字节顺序(或字顺序)问题;正如下面提供的代码所示,我尝试插入一些触发器,但没有成功。\n我检查了输出中是否存在简单的不匹配,例如正确的字节,但顺序错误,但没有成功。

\n

要运行此函数,您需要库Rmpfr以及bigBits此处提供的函数(flip32flip16bigRotate)。

\n
# need these to run:\nlibrary(Rmpfr)\nlibrary(bigBits)\n\nmymd5 <- function(msg){\n\n  if(!is(msg,'raw')) msg <- charToRaw(as.character(msg))\n# a const to be used when truncating values > ffffffff\ntwo32 <- as.bigz(2^(as.bigz(32))) \n\nsidx <- c( 7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22 , 5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, …
Run Code Online (Sandbox Code Playgroud)

md5 r endianness md5sum

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

如何按所有列排序矩阵

好吧,我陷入了一个愚蠢的循环中.我已经阅读了如何通过列对数据框进行排序的有用想法,但还需要一个提示.我想要一个带有任意列数的矩阵的函数,并按顺序对所有列进行排序.例如,对于foo具有N列的矩阵,相当于foo[order(foo[,1],foo[,2],...foo[,N]),].我很乐意使用withby构造,并在必要时定义colnames我的矩阵,但我无法弄清楚如何自动收集order(或with)的参数.或者,我应该说,我可以用它paste然后构建整个血腥的字符串call,但我确信有一种更简单的方法.

sorting r matrix

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

base :: plot - 我可以检索绘制的纵横比吗?

我知道我可以在绘图时指定纵横比,例如plot(x,y,asp=5).有没有办法在允许自动缩放后检索宽高比(如plot(x,y))?我问的原因是我在玩text(x,y,'mystring',srt=local_slope),我local_slope根据基础曲线和x感兴趣的价值来计算.麻烦的是,asp!=1为此,文本以与绘制的数据集的显示斜率不同的角度旋转.样品:

x<- -10:10
y<- x^2
plot(x,y,t='l',asp=0.1) 
# the slope at x=1 is 2 but the default plot aspect ratio is far from 1:1
text(1,1,'foo',srt= 180/pi*atan(2) )  #ugly-looking
text(-1,1,'bar',srt= (180/pi*atan(2/10))) #better
Run Code Online (Sandbox Code Playgroud)

plot r

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

如何生成具有多个成功路径的迷宫?

哪种算法可用于生成具有多个成功路径的迷宫,如果算法是某些知名算法的修改版本,则解释或添加链接。

我正在使用二维数组 A 来存储 maze 的配置。

假设如果迷宫的大小是 n * n 那么从 A[0][0] 到 A[n-1][n-1] 应该有不止一条路径。

algorithm maze graph-algorithm

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

将子矩阵乘以常数

可以说我有矩阵

a =  [ 1 1 1 1;
       1 1 1 1;
       1 1 1 1]
Run Code Online (Sandbox Code Playgroud)

我想将子矩阵a(2:3, 2:3)乘以5; 所以新的矩阵是

a =  [ 1 1 1 1;
       1 5 5 1;
       1 5 5 1]
Run Code Online (Sandbox Code Playgroud)

那是什么功能?我试过这个=>

a = a(2:3, 2:3)*5;
Run Code Online (Sandbox Code Playgroud)

但那只会给我一个新的矩阵2x2

a = [5 5;
     5 5]
Run Code Online (Sandbox Code Playgroud)

matlab

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