小编mjk*_*tfw的帖子

在 R 中读入原始二进制数据并将其转换为整数

我有一个二进制文件,其中包含编码为不同长度(主要是 2-/4-字节)的有符号或无符号整数的数值。为了处理这些数据,我将文件的所需部分作为raw向量读取readBin(),然后尝试将其转换为十进制。问题是,R内置函数有限制,我不完全理解(例如没有 long unsigned ints) - 请参阅下面的示例。

如何int从原始数据中读取自定义长度的 unsigned s?有没有比下面指定的更合适、更优雅的方法?

require(dplyr)

###############################################################################
# create examplary raw vector of 24 bytes
set.seed(1)
raw <- sample(0:0xff, 24, T) %>% as.raw %>% print


###############################################################################
# approach with readBin() - not working
# read 2-byte unsigned integers left-to-right, not an issue
readBin(raw, size = 2, n = length(raw) / 2, integer(), endian = 'big', signed = FALSE)

# read 4-byte signed integers left-to-right, it's ok …
Run Code Online (Sandbox Code Playgroud)

binary hex hexdump r

7
推荐指数
0
解决办法
1550
查看次数

为什么使用单元素列表改变列表列会导致深层复制?

我不知道创建一个dplyr::mutate()带有单元素列表的新列表列实际上是深度复制元素以填充tibble长度(请参阅参考资料t3).这是为什么?

如果我t4在创建tibble(t5)时指定了explicit()的正确长度或传递它,则元素将通过引用传递.

考虑以下情况,其中列表包含具有大向量的tibble.

library(tidyverse)
library(pryr)

t1 <- tibble(a = 1:4)
t2 <- tibble(b = 1:1e6)
t3 <- mutate(t1, tl = list(t2))
t4 <- mutate(t1, tl = rep(list(t2), n()))
t5 <- tibble(a = 1:4, tl = list(t2))

object_size(t2)
#> 4 MB
object_size(t3)
#> 16 MB
object_size(t4)
#> 4 MB
object_size(t5)
#> 4 MB
Run Code Online (Sandbox Code Playgroud)

reprex包创建于2019-02-22 (v0.2.1)

r deep-copy mutate tibble

7
推荐指数
0
解决办法
85
查看次数

我们可以访问自定义ggplot2的统计信息中的所有数据列吗?

我想ggplot2通过创建新的stats函数和ggproto对象来实现Cox比例风险模型的诊断。这个想法是从分组(按colorfacet_grid等)中受益,以便对所需统计信息(例如mar残差)进行条件计算。在下面的示例中,将对空模型进行重新拟合,并为每个辅助因子水平计算mar。问题是:

  1. 飞度是基于完成data的内部设置的参数ggprotocompute_group方法,而不是实际的数据集。这意味着,数据帧被去除未明确定义的列,aes因此,用户应每次至少提供“事件发生时间”和“事件指示符”列。(除非它们在stat_...功能包装器中进行了硬编码)。可以compute_group以某种方式访问​​原始数据集中的对应行吗?
  2. 对于Rownames compute_groupdata是独一无二的每个PANEL,这意味着它们不能反映原始数据集的supplited实际rownames ggplot,我们再也不能排除如用完整的型号省略不完整的情况下,除非明确指定/硬编码一些id变量。问题与上面相同。
  3. geom图层能否访问y由另一个自定义统计信息(也已绘制)计算的?考虑使用诸如的更平滑的残差散点图。ggplot(data, aes(x = covariate, time = time, event = event)) + stat_funcform() + geom_smooth(aes(y = ..martingales..))..martingales..实际由来计算stat_funcform

# Load & Set data ---------------------------------------------------------

require(data.table)
require(dplyr)
require(ggplot2)
require(survival)
set.seed(1)

dt <- data.table(factor = sample(c(0, 2), 1e3, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 survival-analysis tidyverse ggproto

5
推荐指数
0
解决办法
406
查看次数