当提供FEN表示法的棋盘时,rchess软件包能够输出类似于棋盘的图像(可以选择ggplot棋盘)。 FEN表示法是“ 8/8/8/8/8 / 1R6 / 2k5 / K7 w-c6 1 30”类型的字符串,其中前8个用“ /”分隔的值是指电路板的行,字母表示字母,数字表示每行空白方块的数量以及以下字符是此处不相关的参数。我有一个相当大的国际象棋静态位置数据集(为方便起见,只有残局),并且我做了一个函数,以数据集的一行的国际象棋代数符号作为输入,返回相应FEN的字符串。在rchess软件包的markdown中,可以通过执行以下操作将此FEN符号分配给变量fen(例如)
fen<-fenfunction(1) #This is my function
chss <- Chess$new(fen)
plot(chss, type = "ggplot")
,它将返回棋盘上数据集第1行中的位置。也可以通过简单的ggchessboard(fen)来完成,但是以前的方法更具说明性。到目前为止,一切都很好。当尝试通过for循环绘制数据集的各行时,就会出现问题,即:
for(j in 1:nrow(dat)){
fen<-fenfunction(j)
chss <- Chess$new(fen)
plot(chss, type = "ggplot")
}
这只是实现此目的的一种可能方法,但是我尝试了几种,但它们都没有给出任何输出或绘图,甚至没有警告。它只是不返回任何内容。由于该函数本身在for循环中执行时可以令人满意地工作,因此我认为问题在于这样一个事实,即所创建的chss变量(以及rchess包框架中的任何变量)的类型都是“环境”(或类环境)。可能这种操作对于R或类似的环境是荒谬的,仅将其转换为任何其他类都可以解决我的问题。
我对这种语言并不陌生,但是我既不是专家,也不是高级用户,我也不知道这是否有意义,我对直接环境类型的变量没有任何经验,也不知道为什么此for循环不起作用。我希望我的问题是可以理解的(尽管我很难用这么短的句子来表达我的问题),并且我很感谢任何关于如何处理所有这些问题的评论。真是太棒了,我只是想念一些琐事,你们中的一个可以轻松地向我指出,因为我有这种感觉。