Не мисля, че това е труден въпрос, но просто не мога да разбера това и не можах да намеря нищо в стекове (надявам се, че не дублирам). Опитвам се да променя моите вложени for цикли в lapply изрази, използвайки if/else. Имам списък с рамки с данни, но не съм разбрал как да получа достъп до редовете, както мога във вложени цикли for. Използвам колоната bearingDelta, за да попълня нов списък с 1 или 0 в зависимост от това дали стойността на колоната bearingDelta е по-голяма или по-малка от 119,9. Освен това осъзнавам, че този въпрос може да изглежда подобен на въпрос, който публикувах наскоро, но мисля, че е достатъчно различен, за да живеем.
данни:
lat <- c(32.87707, 32.87708, 32.87694, 32.87726, 32.87469)
lon <- c(-117.2386, -117.2334, -117.2378, -117.2356, -117.2329)
bearingDelta <- c(180, 49, 23, 119, 129)
df <- data.frame(cbind(bearingDelta, lat, lon))
df.list <- list(df, df, df, df)
вложен цикъл:
over120 <- list()
for (i in 1:length(tripList)) {
for (j in 1:nrow(tripList[[i]])) {
if (tripList[[i]][j, c("bearingDelta")] <= 119.9) {
over120[[i]][j] <- 0 }
else {
over120[[i]][j] <- 1 }
}
}
lapply (нещо като това се опитвам да стигна).
over120 <- lapply(tripList, if (tripList[[i]][j, c("bearingDelta")] <= 119.9) over120[[i]][j] <- 0
else over120[[i]][j] <- 1)
желаният резултат за този примерен набор от данни ще изглежда така:
> over120
[[1]]
[1] 1 0 0 0 1
[[2]]
[1] 1 0 0 0 1
[[3]]
[1] 1 0 0 0 1
[[4]]
[1] 1 0 0 0 1