2016-07-14 2 views
2

Что я пытаюсь сделать: Умножить объект в списке другим объектом в другом списке? Мне нужно умножить вектор 1000 значений в разы Список А вектор 1000 значений в список Б.Умножить два объекта списка в R

Например:

Вектор в List_A:

1 
2 
3 

Вектор в List_B:

4 
5 
6 

Выходной вектор Я хочу, List_A * B:

4 
10 
18 

Я нашел что-то, называемое multiply.list() в пакете {lgcp}, но, видимо, не все зависимости существуют больше, поэтому я не могу его использовать ... Я пробовал использовать lapply (не работает, Error in x * l1: нечисловой аргумент для двоичного оператора) и mapply (который создает матрицу и не просто умножает значения).

Я делаю все это в цикле, но cinput.data и l1 - оба указанных раздела списка.

#l2<-lapply(cinput.data, function(x) x*l1) 

#l2<-mapply('*',cinput.data, l1) 
+0

Что вы подразумеваете под "vector in list"? Является ли сам список вектором или содержит список векторов? –

+0

Сколько векторов в каждом списке? –

+1

Это то, что вы ищете 'mapply (" * ", список (1: 3), список (1: 3), SIMPLIFY = FALSE)'? – nrussell

ответ

2

На основании того, что вы умножая списки вместе в фрагменте кода при условии, что я буду считать, что списки содержат только векторы, которые вы хотите несколько. Я бы, наверное, прокомментировал это, но у меня нет репутации.

Вы пробовали просто «отменить»?

unlist(cinput.data)*unlist(l1) 

Это далеко от сложного, но из деталей вы данные в одиночку я не понимаю, почему он не будет делать то, что вы хотите.

3

Вы можете использовать функцию Map. Это также сохраняет структуру списка данных, если вы этого хотите. Если вы не можете просто использовать unlist:

Map('*',l1,l2) 

[[1]] 
[1] 4 

[[2]] 
[1] 10 

[[3]] 
[1] 18 

данных:

l1<-list(1,2,3) 

l2<-list(4,5,6) 
1

Я думаю, что вы просто хотите, чтобы умножить число в списках вместе:

> ListA <- list(1,2,3) 
> ListB <- list(4,5,6) 
> ListAB <- list(unlist(ListA)*unlist(ListB)) 
> ListAB 
[[1]] 
[1] 4 10 18 

Ссылаясь на списки как «векторы» в R, запутывает, так как «вектор» имеет другое значение в R

Смежные вопросы