在使用 roxygen2 的“R”包中,我在我提供的示例代码中使用了内置数据集。
在构建和检查包时,我得到
Consider adding
importFrom("datasets", "CO2")
importFrom("grDevices", "dev.list", "dev.off")
...
Run Code Online (Sandbox Code Playgroud)
然后我将以下行添加到我的代码中:
#' @importFrom datasets CO2
Run Code Online (Sandbox Code Playgroud)
对源进行 roxygenizing 后,NAMESPACE 包含
importFrom(datasets,CO2)
Run Code Online (Sandbox Code Playgroud)
但是,检查包然后产生:
Error : object ‘CO2’ is not exported by 'namespace:datasets'
Run Code Online (Sandbox Code Playgroud)
?CO2 告诉我 CO2 位于 package:datasets 中。
这里出了什么问题?我使用 R 3.3.0 和新安装的 roxygen2。
谢谢你的帮助。
我有一个包含枚举的长文件。每个项目都由几行组成,并且可能还包括其他元素,例如图形和列表。文档类型要求所有这些项目都显示在单个页面上,并且项目内没有分页符。页面底部未使用的空白是可以接受的。
这是一个例子
\documentclass[a5paper,12pt]{article}
\usepackage{blindtext}
\begin{document}
\begin{enumerate}
\item \blindtext
\item \blindtext % don't break this apart
\item very long text here
\end{enumerate}
\end{document}
Run Code Online (Sandbox Code Playgroud)
我知道有关samepage环境以及解决方案的信息minipage。问题是我无法将个人包装\item到需要的这些环境中。
needspace 可以,但是随后我需要手动确定每个项目的垂直范围(至少这是我的想法)。
我对 Qt Widgets 有一些经验,但最近才开始使用 QML。
我面临的问题是我希望 QML 中定义的一些布局能够自动调整以适合其内容。这是可行的,但不是动态的,即如果内容发生变化,布局不会适应。使用旧式(非 QML)布局/小部件方法,这会自动发生。
这是一个示例(我的代码看起来不同并且由不同的文件组成,但我将此 MWE 粘贴在一起来演示问题):
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.0
import QtQuick.Layouts 1.2
Window {
id: root
visible: true
width: 640
height: 480
property var nbx: 3
Column {
RowLayout {
Repeater {
model: 3
Rectangle {
width: childrenRect.width
height: childrenRect.height
color: "green"
ColumnLayout {
Rectangle {
height: 10
}
RowLayout {
Repeater {
model: root.nbx
Rectangle {
width: 20
height: 20
color: "orange"
}
}
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在使用 emacs 和 lsp 模式。为了编辑 .R 文件,我使用 rlanguageserver。
这很好用。但是,我想禁用一些规则。例如,我确实想决定我的变量名称格式,即禁用“变量名称应该是snake_case”消息。
我.lintr在我的主目录中放置了一个文件,内容如下:
linters: with_defaults(snake_case_linter = NULL)
Run Code Online (Sandbox Code Playgroud)
但没有任何效果。为什么?
另外,当我重新缩进一个区域时,我想重新缩进而不添加或删除换行符,即我想手动选择换行符。我怎样才能实现这个目标?
我在 C++ 方面经验丰富,并开始尝试 Rust。
尝试实现一些简单的通用函数时,我遇到了以下问题:
use std::ops::BitAnd;
use std::cmp::Eq;
fn is_odd_i32(x: u32) -> bool {
if x & 1_u32 == 1_u32 { true } else { false }
}
fn is_odd<T: BitAnd + Eq>(x: &T) -> bool {
if (*x & (1 as T)) == (1 as T) { true } else { false }
}
fn main() {
println!("is_odd -> '{}'", is_odd(&23_u64));
println!("is_odd -> '{}'", is_odd(&23_u32));
}
Run Code Online (Sandbox Code Playgroud)
问题似乎是按位与结果与 0 或 1 的比较。我知道要使其工作,1(或 0)必须可转换为类型 T,但不知道如何实现这一点。我也尝试过T::try_from(1_u8).ok().unwrap(),但这也不起作用。
我不明白如何解决这个问题...
我得到的错误是:
error[E0369]: …Run Code Online (Sandbox Code Playgroud) 我挣扎于std::set应该支持自定义比较操作的。我的目标是能够仅使用 key 参数调用 find ,而无需先创建 set 类型的对象。像这样的东西:
#include <set>
#include <cstdint>
#include <vector>
class TestItem {
public:
std::uint64_t id; // key
std::vector<double> areas; // some other data
};
struct TestItemCompare {
bool operator()(const std::uint64_t& lhs, const std::uint64_t& rhs) {
return lhs < rhs;
}
bool operator()(const std::uint64_t& lhs, const TestItem& rhs) {
return lhs < rhs.id;
}
bool operator()(const TestItem& lhs, const std::uint64_t& rhs) {
return lhs.id < rhs;
}
bool operator()(const TestItem& lhs, const TestItem& rhs) { …Run Code Online (Sandbox Code Playgroud)