Итак, у меня есть список (названный «datalist») с 829 элементами. Числа в каждом элементе находятся в масштабе от 1 до 676, но мой код циклически возвращается к началу 676, когда элемент представляет собой вектор длиной больше единицы. Я ищу способ вычесть 676 только из значений списка, которые больше 676. Я пытался использовать lapply безрезультатно. Ниже приведен небольшой раздел списка, за которым следует мой код и сообщение об ошибке. Спасибо!Как вычесть из отдельных элементов списка
[[825]]
[1] 429 496
[[826]]
[1] 8 895 1181
[[827]]
[1] 6
[[828]]
[1] 901 916 1298 1299 1302 1307
Код:
sub <- function(x){
for(i in datalist[x]){
if(i > 676)
i = i-676
}
}
lapply(1:829, sub)
код возвращает все элементы списка, как NULL и выдает следующее сообщение об ошибке.
Сообщение об ошибке:
1-50: In if (i > 676) i = i - 676 :
the condition has length > 1 and only the first element will be used
То, что я ищу, чтобы иметь выходной код:
[[825]]
[1] 429 496
[[826]]
[1] 8 219 505
[[827]]
[1] 6
[[828]]
[1] 225 240 622 623 626 631
Не совсем верю. –
О, я вижу - вы не «вычитаете» (т. Е. Удаляете) из списка «вы вычитаете из каждого элемента списка» – SymbolixAU
Я думаю, что вы все равно можете использовать ответы на другой вопрос. – SymbolixAU