小编Max*_*Max的帖子

具有动态变量数的公式

假设有一些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)

r formula

73
推荐指数
4
解决办法
4万
查看次数

boost scoped_lock vs普通锁定/解锁

我将使用boost::mutexboost/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()"线程安全不够" 而更好?

c++ boost mutex thread-safety

41
推荐指数
2
解决办法
2万
查看次数

从静态库中提取函数名称

我有一个静态库static_library.a

如何列出那里实现的功能和方法.或者至少如何看待"FUNCTION_NAME"实现的具体功能?

unix static-libraries extraction

14
推荐指数
2
解决办法
2万
查看次数

如何阅读包含转义引号的引用文本

请考虑以下逗号分隔文件.为简单起见,它包含一行:


'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文件.

quotes r escaping multiline read.csv

11
推荐指数
1
解决办法
1万
查看次数

使用cmake从整个项目中创建一个静态库

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的"猜测"是:当可执行文件的建立是在同一个项目中的情况下确定ab如果它与必须链接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)

linux cmake

7
推荐指数
1
解决办法
2720
查看次数

读取csv文件,在一列中包含数字和字符串

我正在导入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导入它时,这些都只是转入因子.

如何设置它们以便将它们作为整数和字符串读取?

谢谢!

csv r

6
推荐指数
2
解决办法
2911
查看次数

这种模式的名称是什么?

这种结构的名称是什么?或者我在哪里可以阅读.

class A : public B < A > { ... }
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns

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

包括.h文件

假设我有两个.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)的优点是什么?

c++ coding-style

2
推荐指数
1
解决办法
226
查看次数