小编Kon*_*lph的帖子

这个警告与枚举类大小有关吗?

警告:

src/BoardRep.h:49:12: warning: ‘BoardRep::BoardRep::Row::<anonymous struct>::a’ 
is too small to hold all values of ‘enum class BoardRep::Piece’ 
[enabled by default]
Piece a:2;
        ^
Run Code Online (Sandbox Code Playgroud)

枚举:

enum class Piece: unsigned char {
    EMPTY,
    WHITE,
    BLACK
};
Run Code Online (Sandbox Code Playgroud)

使用:

union Row {
    struct {
        Piece a:2;
        Piece b:2;
        Piece c:2;
        Piece d:2;
        Piece e:2;
        Piece f:2;
        Piece g:2;
        Piece h:2;
    };
    unsigned short raw;
};
Run Code Online (Sandbox Code Playgroud)

如果enum我同意GCC,它可能不得不截断,但这是因为enums与整数和预处理器定义并没有真正分开.然而,一个enum class更强大.如果它不够强大,不能假设所有Piece取整数值都在0到2之间,则警告是有意义的.否则海湾合作委员会将不必要地挑剔,可能值得邮寄清单说"看,这是一个愚蠢的警告"

任何人都看不到这一点

您可以在2位数据中存储4个不同的值,我只需要3个不同的值,因此任何长度为4或更小的枚举应该很好地适合给定的2位(并且我的枚举确实"派生"(更好的术语?)来自无符号类型).如果我有5个或更多那么我会期待一个警告.

c++ enums gcc c++11

5
推荐指数
2
解决办法
1249
查看次数

如何不覆盖泛型方法

我试图了解 R 中的 s3 类系统。

文档说我需要为我想要创建的方法创建一个通用函数。

假设我想foo为 class创建一个方法XYZ

有了 R 的所有包,我怎么能确定我没有覆盖以前创建的泛型方法?

总结是一个不好的例子,因为每个人都可能知道它已经存在,但是我的泛型可能已经定义在我已经加载或我将加载的包中。

oop methods r s4 r-s3

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

用多个钥匙收集

我知道之前已经问过这个问题,但我不太明白.

我有一个如下所示的数据集:

Precinct  Crime       2000   2001  2002  2003  
1         Murder       3      1     2     2
1         Rape         12     5     10    11
1         Burglary     252   188    297   403
2         Murder       4      2      1     0 
Run Code Online (Sandbox Code Playgroud)

以及每年列出的每项犯罪的价值.

我正在尝试将其重新排列为更简单的集合,如下所示:

Precinct    Crime    Year   Value
   1        Murder   2000     3
   1        Rape     2000     12
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?我知道我应该使用tidyr gather,但推断多个键的解决方案并不适合我.

transpose r tidyr

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

如何确保文本标题位于多边形对象内?

我正在制作地图,我想在每个州内放置一个小文本标签.我目前的问题是文本超出了州限制,所以看起来不太好看: 在此输入图像描述

我尝试使用均值,中位数,质心等.

我想要的是每个文本完全在多边形内部或外部,如下所示: 在此输入图像描述(图片来自http://www.businessinsider.com/map-what-100-is-actually-worth-in-your-state-2015-7?IR=T)

我使用以下代码生成我的图片:

library(maps)
library(dplyr)
library(ggplot2)

#data 
mapbase <- map_data("state.vbm")    
data(state.vbm.center)
df <- state.vbm.center %>% as.data.frame() %>% 
  mutate(region = unique(mapbase$region) ) %>%   full_join(mapbase) 


#actual plotting
cnames <- aggregate(cbind(long, lat) ~ region, data=df, FUN=median)
gmap<- 
  ggplot()+
  geom_polygon( data=df2,
                aes(long, lat, group = region, fill = somevalue,alpha=0.3)) + 
   coord_fixed() + 
  theme_void() + 
  geom_text(data=cnames, aes( fontface=2 ,cnames$long, cnames$lat , label = "text"
  ), color= "black" ,size=3,check_overlap = T, position=position_jitter(width=3, height=3)  )  +

  scale_fill_gradient(low="red",high="blue")
Run Code Online (Sandbox Code Playgroud)

非常感谢您的提示!

visualization r ggplot2 matplotlib-basemap

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

删除没有小数位的双打

我有一个矢量:

x <- c(0.0, 0.5, 1.000, 1.5, 1.6, 1.7, 1.75, 2.0, 2.4, 2.5, 3.0, 74.0)
Run Code Online (Sandbox Code Playgroud)

如何仅提取x小数位后包含非零值的值?例如,结果向量将如下所示:

c(0.5, 1.5, 1.6, 1.7, 1.75, 2.4, 2.5)
Run Code Online (Sandbox Code Playgroud)

其中已移除0.0,1.000,2.0,3.0,和74.0.

regex grep r data-manipulation

5
推荐指数
2
解决办法
98
查看次数

在标题中插入图像时出现问题

我正在使用多个 R Markdown 文件编写报告,为了便于组合它们,我决定使用bookdown包。我在使用fancyhdr LaTeX 包插入徽标作为标题时遇到问题,该包在常规文件中运行良好.Rmd

索引.Rmd 文件:

---
documentclass: book
classoption: openany
site: bookdown::bookdown_site
subparagraph: true
output:
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
    toc_depth: 4
    latex_engine: xelatex # to receive Arial as font --> install.packages("xelatex") works for R users
link-citations: yes
fontsize: 12pt
linestretch: 1.25
---
Run Code Online (Sandbox Code Playgroud)

preamble.tex是

\usepackage[german]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{titlesec}
\usepackage{fancyhdr}

\usepackage{fontspec}
\setmainfont{Arial}

\pagestyle{fancy}\setlength\headheight{100pt}
\fancyhead[L]{\includegraphics[width=456px]{INS_logo.png}}
\fancyhead[R]{\includegraphics[width=4.1cm]{shurp-2018-logo-blue-transparent.png}}
\renewcommand{\headrulewidth}{0pt}
\rfoot{Seite \thepage \hspace{1pt} von \pageref{LastPage}}

\geometry{a4paper, total={170mm,257mm}, left=20mm, top=10mm, }

\titleformat{\chapter}
  {\normalfont\LARGE\bfseries}{\thechapter}{1em}{}
\titlespacing*{\chapter}{0pt}{3.5ex plus 1ex minus …
Run Code Online (Sandbox Code Playgroud)

r r-markdown bookdown

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

如何从树中删除 NavigableString?

我有点困惑:所有标签都有一种decompose()方法可以将标签从树中移除。但是如果我想删除 aNavigableString呢?它没有这样的方法:

>>> b = BeautifulSoup('<p>aaaa <span> bbbbb </span> ccccc</p>', 'html.parser')
>>> b.p.contents[0]
'aaaa '
>>> type(b.p.contents[0])
<class 'bs4.element.NavigableString'>
>>> b.p.contents[0].decompose()
Traceback (most recent call last):
...
AttributeError: 'NavigableString' object has no attribute 'decompose'
Run Code Online (Sandbox Code Playgroud)

有一种方法我设法NavigableString从树中删除了:通过从内容列表中删除它:

>>> b.p.contents.pop(0)
'aaaa '
>>> b
<p><span> bbbbb </span> ccccc</p>
Run Code Online (Sandbox Code Playgroud)

问题是它仍然存在于strings方法响应中:

>>> list(b.strings)
['aaaa ', ' bbbbb ', ' ccccc']
Run Code Online (Sandbox Code Playgroud)

这表明这是错误的做法。此外,我strings在我的代码中使用,所以这个 hacky 解决方案是不可接受的,唉。


所以问题是:如何NavigableString从树中删除特定对象?

python beautifulsoup

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

有没有一种方法可以在R中为Word制作漂亮的表格?

我问关于SO的问题,这是我最后的希望:-)我必须就Word编写一份报告。我在R Markdown上工作,在那里我必须产生许多表。我希望我的桌子很漂亮!但是,一切都我试过(panderKableExtraflextable)没有工作。

我从coxph模型中获取结果,进行汇总,然后构建data.frame如下所示的模型:

  1                                        Model 1                         Model 2
2                                         n= 375                          n= 374
3                                          e= 65                           e= 64
4                                       PH= 0.46                        PH= 0.97
5            Weight                          ---     1.0  [ 1.0 ; 1.1 ] p = 0.03
6              Size                          --- 1.0  [ 1.0 ; 1.0 ] p = < 10^-3^
7              GR I                          ---                               1
8             GR II                          --- 1.2e+06  [ 0.0 ; Inf ] p = 1.00
9            GR III                          --- …
Run Code Online (Sandbox Code Playgroud)

markdown r ms-word dataframe r-markdown

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

如何设置 Rcpp::List 元素的类属性?

在下面的C++源文件中,在函数中glfw_get_monitors如何设置对象每个元素的类属性monitor_ptrs

\n\n

该行monitor_ptrs[i].attr("class") = "GLFWmonitor";抛出编译错误:

\n\n
\xe2\x80\x98Rcpp::Vector<19>::Proxy\xe2\x80\x99 {aka \xe2\x80\x98class Rcpp::internal::generic_proxy<19>\xe2\x80\x99} has no member named \xe2\x80\x98attr\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n\n

glfw_types.h

\n\n
#ifndef RCPP_GLFW_TYPES_H\n#define RCPP_GLFW_TYPES_H\n\n#include <Rcpp.h>\n#include <GLFW/glfw3.h>\n\nvoid glfw_destroy_monitor(GLFWmonitor*);\n\n// /sf/ask/2884741681/\n\ntypedef Rcpp::XPtr<GLFWwindow, Rcpp::PreserveStorage, glfwDestroyWindow> GLFWwindow_ptr;\ntypedef Rcpp::XPtr<GLFWmonitor, Rcpp::PreserveStorage, glfw_destroy_monitor> GLFWmonitor_ptr;\n\n\n#endif\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

C++源文件

\n\n
#include "glfw_types.h"\nusing namespace Rcpp;\n\n// [[Rcpp::export]]\nGLFWmonitor_ptr glfw_get_primary_monitor() {\n\n  GLFWmonitor_ptr new_monitor = GLFWmonitor_ptr(glfwGetPrimaryMonitor(), true);\n\n  new_monitor.attr("class") = "GLFWmonitor";\n\n  return new_monitor;\n}\n\n// [[Rcpp::export]]\nRcpp::List glfw_get_monitors() {\n\n  int nr_monitors;\n  GLFWmonitor** monitors = glfwGetMonitors(&nr_monitors);\n  Rcpp::List monitor_ptrs(nr_monitors);\n\n  for(int i = 0; i < nr_monitors; i++) {\n    monitor_ptrs[i] …
Run Code Online (Sandbox Code Playgroud)

r rcpp

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

如何为未计算的赋值表达式定义 S3 方法?

\n

tl;drR CMD check当我为 S3 类实现泛型时会抱怨<-,因为它认为该函数是参数不正确的替换函数。

\n
\n

我需要定义一组 S3 泛型来遍历未计算的 R 表达式的 AST。

\n

出于演示目的,请考虑以下 S3 泛型及其方法:

\n
walk = function (x) UseMethod(\'walk\')\n\nwalk.default = function (x) message(\'default\')\n\nwalk.name = function (x) message(\'name\')\n\nwalk.call = function (x) message(\'call\')\n
Run Code Online (Sandbox Code Playgroud)\n

这工作正常:

\n
tests = alist(\'2\', c, f(1))\n\ninvisible(lapply(tests, walk))\n
Run Code Online (Sandbox Code Playgroud)\n
walk = function (x) UseMethod(\'walk\')\n\nwalk.default = function (x) message(\'default\')\n\nwalk.name = function (x) message(\'name\')\n\nwalk.call = function (x) message(\'call\')\n
Run Code Online (Sandbox Code Playgroud)\n

然而,有相当多的调用表达式的 S3 类是 \xe2\x80\x99t call;例如:

\n
tests2 = alist(for (x …
Run Code Online (Sandbox Code Playgroud)

r r-s3 non-standard-evaluation

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