【发布时间】:2016-09-15 11:41:25
【问题描述】:
我在 R 中有一个 data.table,我希望使用 data.tables 根据行值计算一个列表。我目前已经尝试过以下代码作为示例
library("data.table")
dt <- data.table (data.frame(name = c("A","B","C")), num = c(10,20,30))
dt [,seq := list(replicate(5,num)),by = .I]
但是,它不会生成列表,而是将num 列中的值重复到seq 列。如下图
name num seq
A 10 10
B 20 20
C 30 30
预期的输出是
name num seq
A 10 list(10, 10, 10, 10, 10)
B 20 list(20, 20, 20, 20, 20)
C 30 list(30, 30, 30, 30, 30)
我该怎么做?
【问题讨论】:
-
你想要的输出是什么?从您的问题中不清楚您要完成什么。你能展示一个预期结果的样本吗?
-
问题中提到了所需的输出作为预期输出
-
你的意思是
dt [,seq2 := list(list(replicate(5,num))), by = 1:nrow(dt)]?据我所知,by=.I默默无闻。 -
我会选择
dt[, res := transpose(replicate(5, num, simplify = FALSE))],而不是按行操作 -
在 R 中,你做的每件事都是按行做的——好吧,别做
标签: r data.table