좋아, 829 개의 요소가있는 목록 ("datalist")이 있습니다. 각 요소의 숫자는 1에서 676까지이며, 코드가 길이가 1보다 큰 벡터 인 경우 676의 시작 부분으로 돌아갑니다. 676보다 큰 목록의 값에서만 676을 뺄 수있는 방법을 찾고 있습니다. Ive는 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