小编sah*_*ahn的帖子

R 中的 flextable 中的相同列名

我正在尝试从 R 包“flextable”创建一个“灵活”对象。我需要将相同的列名称放在多个列中。当我将它们放入函数“flextable”中的“col_key”选项时,我收到“重复的 col_keys”错误。有办法解决这个问题吗?

a<-c(1:8)
b<-c(1:8)
c<-c(2:9)
d<-c(2:9)
A<-flextable(A,col_keys=c("a","b","a","b"))
Run Code Online (Sandbox Code Playgroud)

这是我收到错误的示例代码。

r header flextable

6
推荐指数
1
解决办法
4874
查看次数

OpenCV 图像大小限制

我正在尝试使用 ITK 到 openCV 桥在 openCV 和 itk 之间传递一个巨大的 Mat 图像 (98304x51968)。我有一个错误:

cvIniyImageHeader 中内存不足(imageSize 溢出),文件 opencv\modules\core\src\array.cpp 第 2961 行。

这是否意味着opencv对图像大小有限制?

c++ opencv

6
推荐指数
1
解决办法
9235
查看次数

为什么安装的“igraph”包加载后返回“libicui18n.so.58:无法打开共享对象文件”?

我试图使用命令 install.packages("igraph") 在 R 中安装 igraph 包。安装完成后,在测试阶段出现以下错误:

\n
\n

测试是否可以加载已安装的软件包错误:dyn.load(file, DLLpath = DLLpath, ...) 中的 \xe2\x80\x98igraph\xe2\x80\x99 的软件包或命名空间\n加载失败:\n
无法加载共享对象\n'/home/midhun/R/x86_64-redhat-linux-gnu-library/3.5/igraph/libs/igraph.so':\nlibicui18n.so.58: 无法打开共享对象文件: 没有这样的文件或\n目录错误: 加载失败 执行停止 错误: 加载\n失败

\n
    \n
  • 删除 \xe2\x80\x98/home/midhun/R/x86_64-redhat-linux-gnu-library/3.5/igraph\xe2\x80\x99
  • \n
\n

下载的源包位于
\n\xe2\x80\x98/tmp/RtmpLVDism/downloaded_pa​​ckages\xe2\x80\x99 警告消息:In\ninstall.packages("igraph") : 安装包 \xe2\x80\x98igraph\ xe2\x80\x99 具有\n非零退出状态

\n
\n

为什么会发生这种情况?有什么解决办法吗?

\n

r igraph

6
推荐指数
1
解决办法
2977
查看次数

将向量中的所有其他元音设为大写

给定一个小写字符串。前任:

s <- 'abcdefghijklmnopqrstuvwxyz'
Run Code Online (Sandbox Code Playgroud)

目标是使字符串中的所有其他元音都大写。

此处所需的输出:

abcdEfghijklmnOpqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,因为所有元音都是按顺序使用的,e并且o都是大写的。

在所有情况下,字符串中都只有小写字符。

对于aieou,所需的输出是:

aIeOu
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 R 中做到这一点?

我试过:

s[unlist(strsplit(s, '')) %in% c('a', 'e', 'i', 'o', 'u')] <- toupper(s[unlist(strsplit(s, '')) %in% c('a', 'e', 'i', 'o', 'u')])
Run Code Online (Sandbox Code Playgroud)

但无济于事。

即使这有效,也不会是所有其他元音

R 版本 4.1.1。

string r uppercase

6
推荐指数
1
解决办法
198
查看次数

编译器如何存储有关数组大小的信息?

最近我在IsoCpp上读到有关编译器如何知道使用new. 常见问题解答描述了两种实现方式,但很基本,没有任何内部信息。我试图在 Microsoft 和GCC的 STL 源代码中找到这些机制的实现,但正如我所见,它们都只是在malloc内部调用。我试图更深入地研究,并在 GCC 中找到了该函数的实现malloc,但我无法弄清楚魔法发生在哪里。是否有可能找到它是如何工作的,或者它在系统运行时库中实现的?

c++ arrays compiler-construction internals

6
推荐指数
1
解决办法
536
查看次数

一笔非常大的金额 - 黑客排名

我正在尝试解决黑客排名上的“一笔非常大的金额”挑战:https://www.hackerrank.com/challenges/a-very-big-sum/problem

\n

在那里我必须对给出的数组中的所有数字求和,所以我想出了两个解决方案:

\n

第一个解决方案

\n
function aVeryBigSum(ar){\n  let sum = 0;\n  for(let i = 0; i < ar.length; i++){\n     sum += i;\n   }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

第二种解决方案

\n
function(ar){\n let sum = ar.reduce((accumulator, currentValue) => {\n  accumulator + currentValue;\n    });\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但它们都不起作用,我不\xc2\xb4t知道为什么,我想也许我没有按照黑客等级希望我写的那样,但我不确定

\n

javascript arrays reduce

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

在 R 中将行转换为列

我有这个示例数据集,我想将其转换为以下格式:

Type <- c("AGE", "AGE", "REGION", "REGION", "REGION", "DRIVERS", "DRIVERS")
Level <- c("18-25", "26-70", "London", "Southampton", "Newcastle", "1", "2")
Estimate <- c(1.5,1,2,3,1,2,2.5)

df_before <- data.frame(Type, Level, Estimate)


     Type       Level Estimate
1     AGE       18-25      1.5
2     AGE       26-70      1.0
3  REGION      London      2.0
4  REGION Southampton      3.0
5  REGION   Newcastle      1.0
6 DRIVERS           1      2.0
7 DRIVERS           2      2.5
Run Code Online (Sandbox Code Playgroud)

基本上,我想将数据集转换为以下格式。我已经尝试过该功能dcast(),但似乎不起作用。

    AGE Estimate_AGE      REGION Estimate_REGION DRIVERS Estimate_DRIVERS
1 18-25          1.5      London               2       1              2.0
2 26-70          1.0 Southampton               3       2 …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

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

如何快速将一个大整数分成一个单词?

我目前正在开发一个类来处理大的无符号整数。但是,我需要不完整的功能,即:

\n
    \n
  1. bi_uint+=bi_uint- 已经实施。没什么好抱怨的。
  2. \n
  3. bi_uint*=std::uint_fast64_t- 已经实施。没什么好抱怨的。
  4. \n
  5. bi_uint/=std::uint_fast64_t- 已实现,但工作速度非常,还需要两倍宽的类型uint_fast64_t。在测试用例中,除法比乘法慢35倍
  6. \n
\n

接下来,我将给出我的除法实现,它基于一个简单的长除法算法:

\n
#include <climits>\n#include <cstdint>\n#include <limits>\n#include <vector>\n\nclass bi_uint\n{\npublic:\n    using u64_t = std::uint_fast64_t;\n    constexpr static std::size_t u64_bits = CHAR_BIT * sizeof(u64_t);\n    using u128_t = unsigned __int128;\n    static_assert(sizeof(u128_t) >= sizeof(u64_t) * 2);\n\n    //little-endian\n    std::vector<u64_t> data;\n\n    //User should guarantee data.size()>0 and val>0\n    void self_div(const u64_t val)\n    {\n        auto it = data.rbegin();\n\n        if(data.size() == 1) {\n            *it /= val;\n            return;\n        }    \n        \n …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm biginteger integer-division c++20

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

循环向量化 - 使用掩码对 7 字节记录的匹配进行计数

我有一个相当简单的循环:

auto indexRecord = getRowPointer(0);
bool equals;
// recordCount is about 6 000 000
for (int i = 0; i < recordCount; ++i) {
    equals = BitString::equals(SelectMask, indexRecord, maxBytesValue);
    rowsFound += equals;
    indexRecord += byteSize; // byteSize is 7
}
Run Code Online (Sandbox Code Playgroud)

哪里BitString::equals

static inline bool equals(const char * mask, const char * record, uint64_t maxVal) {
    return !(((*( uint64_t * ) mask) & (maxVal & *( uint64_t * ) record)) ^ (maxVal & *( uint64_t * ) record));
} …
Run Code Online (Sandbox Code Playgroud)

c++ gcc simd vectorization bitmap-index

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

写入/dev/ptmx是什么意思

我正在阅读 sshfs 的源代码。我发现当尝试向 ssh 提供密码时,它会将密码写入 /dev/ptmx。

write(sshfs.ptyfd, sshfs.password, strlen(sshfs.password));
Run Code Online (Sandbox Code Playgroud)

我知道它是伪终端的主端,但我不太明白写入它的含义。我尝试向 /dev/ptmx 回显某些内容,但什么也没发生。也许我还没有完全理解pts和ptmx的机制。

c ssh terminal sshfs

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