我有一个长度为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中的最后一个(十分之一)元素。 (就像for (j in 1:10)
没有运行,但需要j=10
知道如何实现吗?
答案 0 :(得分:0)
在您的代码中,您只定义了variables[i]
的元素i。这就是为什么你只获得最后一个值,因为它重写了。试试这个:
temp