假设有一些data.frame foo_data_frame,并且想要找到某些其他列的目标列Y的回归.为此目的,通常使用一些公式和模型.例如:
linear_model <- lm(Y ~ FACTOR_NAME_1 + FACTOR_NAME_2, foo_data_frame)
Run Code Online (Sandbox Code Playgroud)
如果公式是静态编码的话,这确实很有效.如果希望使用常数的因变量(例如2)对多个模型进行根处,则可以这样处理:
for (i in seq_len(factor_number)) {
for (j in seq(i + 1, factor_number)) {
linear_model <- lm(Y ~ F1 + F2, list(Y=foo_data_frame$Y,
F1=foo_data_frame[[i]],
F2=foo_data_frame[[j]]))
# linear_model further analyzing...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是当程序运行期间变量的数量动态变化时,如何做同样的影响?
for (number_of_factors in seq_len(5)) {
# Then root over subsets with #number_of_factors cardinality.
for (factors_subset in all_subsets_with_fixed_cardinality) {
# Here I want to fit model with factors from factors_subset.
linear_model <- lm(Does R provide smth to …
Run Code Online (Sandbox Code Playgroud) 我将使用boost::mutex
从boost/thread/mutex.hpp
.有几种方法来锁定/解锁互斥:有scoped_lock
,unique_lock
,lock_guard
,互斥的成员函数::lock()
和::unlock()
和非成员函数lock()
和unlock()
.
我注意到,这boost::scoped_mutex
是使用互斥锁的最流行的方法之一.为什么是最好的成员函数::lock()
和::unlock()
?
特别是,我为什么要使用
{
boost::scoped_lock lock(mutex)
// ...
// read/output sharing memory.
// ...
}
Run Code Online (Sandbox Code Playgroud)
而不是
mutex.lock()
// ...
// read/output sharing memory.
// ...
mutex.unlock()
Run Code Online (Sandbox Code Playgroud)
是scoped_lock
因为某些样式编码的观点还是::lock()/::unlock()
"线程安全不够" 而更好?
我有一个静态库static_library.a
如何列出那里实现的功能和方法.或者至少如何看待"FUNCTION_NAME"实现的具体功能?
请考虑以下逗号分隔文件.为简单起见,它包含一行:
'I am quoted','so, can use comma inside - it is not separator here','but can\'t use escaped quote :=('
Run Code Online (Sandbox Code Playgroud)
如果您尝试使用该命令读取它
table <- read.csv(filename, header=FALSE)
Run Code Online (Sandbox Code Playgroud)
该行将分为4个部分,因为行包含3个逗号.实际上我只想读3个部分,其中一个部分包含逗号本身.引用标志来寻求帮助.我试过了:
table <- read.csv(filename, header=FALSE, quote="'")
Run Code Online (Sandbox Code Playgroud)
但这有误"incomplete final line found by readTableHeader on table"
.这是因为奇数(七)引号.
read.table()
以及scan()
有参数allowEscapes
,但设置它TRUE
没有帮助.没关系,因为help(scan)
你可以阅读:
解释的转义是控制字符'\ a,\ b,\ f,\n,\ r,\ t,\ v',...... ......任何其他转义字符都被视为自身,包括反斜杠
请建议您如何阅读包含转义\'
引号的此类带引号的csv文件.
c ++ - 项目,比方说,foo
由cmake维护.一个人想要创建一个库libfoo.a
(在整个源代码树中创建所有类/方法/函数),以便创建可以链接到库的程序-lfoo
.
好的,让我们现在考虑一个玩具的例子,而且这个问题很清楚.目录foo
(项目的根目录)包含目录a
,和b
.CmakeLists.txt
创建了两个:
# a/CMakeLists.txt
add_library(A <a_sources>)
# b/CMakeLists.txt
add_library(B <b_sources>)
Run Code Online (Sandbox Code Playgroud)
一个CMakeLists.txt
用于根目录:
add_subdirectory(a)
add_subdirectory(b)
add_library(foo <foo_sources>
target_link_libraries(foo A B)
Run Code Online (Sandbox Code Playgroud)
这对我是一个惊喜:建设libfoo.a包含foo_sources唯一方法后,和a_sources
,b_sources
被排除在外.在创建可执行文件cmake的"猜测"是:当可执行文件的建立是在同一个项目中的情况下确定a
和b
如果它与必须链接foo
.但是在可执行文件创建"外部"项目的情况下使用库foo
必须链接-lfoo -la -lb
,现在想象一个有很多子目录的项目 - 如何处理它?所以问题是"如何创建一个库,通过cmake的方式聚合整个项目的方法?"
谷歌搜索引导我到最近嵌入(出现在2.8.8)的OBJECT library
机会.这里显示了使用它的好例子.现在上面的问题可以解决:
# a/CMakeLists.txt
add_library(A OBJECT <a_sources>)
# b/CMakeLists.txt
add_library(B OBJECT <b_sources>)
# foo/CMakeLists.txt
add_subdirectory(a)
add_subdirectory(b)
add_library(foo <foo_sources> …
Run Code Online (Sandbox Code Playgroud) 我正在导入3列CSV文件.最后一列是一系列条目,可以是整数,也可以是引号中的字符串.
以下是一系列示例条目:
1,4,"m"
1,5,20
1,6,"Canada"
1,7,4
1,8,5
Run Code Online (Sandbox Code Playgroud)
当我使用read.csv导入它时,这些都只是转入因子.
如何设置它们以便将它们作为整数和字符串读取?
谢谢!
假设我有两个.h文件:啊和Bh此外,啊包括Bh本身:
Bh - 定义了B类.
class B {
...
};
Run Code Online (Sandbox Code Playgroud)
啊 - 定义了A类,它使用了B类.
#include B.h
class A {
void SomeFunction(const B& b);
};
Run Code Online (Sandbox Code Playgroud)
现在,我有一些.cpp文件,它同时使用A和B类(B类不仅可以用在A :: SomeFunction(B)中)
从设计模式和编码风格的角度来看,包含Ah和Bh(而不仅仅是Ah)的优点是什么?