【发布时间】:2017-11-07 08:12:41
【问题描述】:
我有一个长度为 200 mylist 的列表,其中每个元素都是一个整数列表。
然后我想为每个元素创建一个表,并最终创建一个长度相同的列表,其中每个元素都是一个矩阵。
为了简单起见,假设我的列表是mylist = c(1001:1200)。
现在我想为每个元素创建一个转换,例如: 鉴于此
set.seed(222)
a = sample( length(temp), 10 )
b = sample( length(temp), 10 )
c = 211
a 和 b 是长度为 10 的列表,我想申请
(a * mylist[i] + b) %% c
在我的原始列表的每个元素中(共 200 个)
我尝试使用两个 for 循环,但它不起作用。
temp <- vector(mode='array', length =1)
for (i in 1:length(mylist) ) {
for (j in 1:10) {
temp[[i]] =( a[j] * mylist[[i]] + b[j] ) %% c
}
}
特别是我得到一个长度为 200 的列表,对于 mylist (1:200) 的每个元素,我从以下转换中得到结果
(a[10]*mylist[[1]]+b[10])%%c
(a[10]*mylist[[2]]+b[10])%%c
...
等,这意味着它只考虑列表 a 和 b 的最后(10 个)元素。 (就像for (j in 1:10) 没有运行,但需要j=10
知道如何实现吗?
【问题讨论】:
-
您的
mylist似乎是vector而不是list,另外,temp是什么?
标签: arrays r list matrix lapply