小编Pat*_*ick的帖子

递归地重复向量元素N次

我想重复一个向量N次但是元素方面,而不是整个向量.

例如,我有:

v <- c('a', 'b')
Run Code Online (Sandbox Code Playgroud)

说我想重复n次:

n <- 3
Run Code Online (Sandbox Code Playgroud)

我想要:

vfill <- c(rep(v[1], n), rep(v[2], n))
print(vfill)
[1] "a" "a" "a" "b" "b" "b"
Run Code Online (Sandbox Code Playgroud)

我迄今为止最好的解决方案

ffillv <- function(i) rep(v[i], n)
c(sapply(seq_len(length(v)), ffillv))
Run Code Online (Sandbox Code Playgroud)

我对快速和可扩展的解决方案感兴趣,例如使用rbind,plyr等.

r

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

使用日期时间POSIXlt创建R data.table时出错

使用日期时间列创建data.table时出现问题:

> mdt <- data.table(id=1:3, d=strptime(c("06:02:36", "06:02:48", "07:03:12"), "%H:%M:%S"))
> class(mdt)
[1] "data.table" "data.frame"
> print(mdt)
Error in `rownames<-`(`*tmp*`, value = paste(format(rn, right = TRUE),  : 
  length of 'dimnames' [1] not equal to array extent

Enter a frame number, or 0 to exit   

1: print(list(id = 1:3, d = list(sec = c(36, 48, 12), min = c(2, 2, 3), hour = c(6, 6, 7), mday = c(31,
2: print.data.table(list(id = 1:3, d = list(sec = c(36, 48, 12), min = …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

Ranged/Filtered Cross加入R data.table

我想在不评估完整交叉连接的情况下交叉连接两个数据表,在过程中使用测距标准.从本质上讲,我希望CJ具有过滤/范围表达.

有人可以提出一种避免完全交叉连接的高性能方法吗?

请参阅下面的测试示例,使用邪恶的完整交叉连接执行作业 .

library(data.table)

# Test data.
dt1 <- data.table(id1=1:10, D=2*(1:10), key="id1")
dt2 <- data.table(id2=21:23, D1=c(5, 7, 10), D2=c(9, 12, 16), key="id2")

# Desired filtered cross-join data table by hand: D1 <= D & D <= D2.
dtfDesired <- data.table(
    id1=c(3, 4, 4, 5, 6, 5, 6, 7, 8)
  , id2=c(rep(21, 2), rep(22, 3), rep(23, 4))
  , D1=c(rep(5, 2), rep(7, 3), rep(10, 4))
  , D=c(6, 8, 8, 10, 12, 10, 12, 14, 16)
  , D2=c(rep(9, 2), rep(12, …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×3

data.table ×2