【问题标题】:Subtracting a value from list of lists从列表列表中减去一个值
【发布时间】:2014-03-09 18:27:47
【问题描述】:
c_k <- c(2, 4, 10, 50, 100, 500, 10000, 100000)
c_flips <- lapply(c_k, function(n) replicate(1000, sum((sample(0:1, n, replace=TRUE)))))
d_fk <- c_k/2
d_flips <- lapply(seq_along(d_fk), function(i) lapply(c_flips[i], function(v) v - d_fk[i])[1])

在上面的代码中,我试图从c_flips 中的每个元素中减去d_fk 中的相应值。我试过使用 mapply,几个不同的 lapply,但我似乎从来没有得到与 c_flips 相同的数据类型。

我希望 d_flips 成为像 c_flips 这样的向量列表,但我得到的是长度为 1 的列表列表,其中向量作为列表中的唯一元素。

R 专业人士可以帮助我吗?

【问题讨论】:

  • 你的意思是d_flips &lt;- lapply(seq_along(d_fk), function(i) c_flips[[i]] - d_fk[i])吗?听起来/看起来你嵌套太多了。

标签: r list nested


【解决方案1】:

希望我理解正确。使用

d_flips<-mapply('-',c_flips,d_fk,SIMPLIFY=FALSE)

结果的str 如下所示:

List of 8
 $ : num [1:1000] 1 -1 0 0 -1 -1 0 -1 -1 -1 ...
 $ : num [1:1000] 0 -1 0 -1 -1 1 0 0 -2 0 ...
 $ : num [1:1000] -1 0 -3 1 -2 0 1 1 0 -3 ...
 $ : num [1:1000] 1 1 0 9 -2 6 -4 -3 5 5 ...
 $ : num [1:1000] 2 3 0 0 2 -14 -9 -7 -1 8 ...
 $ : num [1:1000] -24 10 -4 1 -15 1 5 7 0 -4 ...
 $ : num [1:1000] -27 -5 5 82 68 -9 53 -154 31 -74 ...
 $ : num [1:1000] -96 193 -171 11 -186 216 79 24 -114 -25 ...

【讨论】:

  • 正是我想要的。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
相关资源
最近更新 更多