Я понимаю, что этот вопрос очень похож на this one (среди прочих), однако я не могу изменить решение (-ы), чтобы соответствовать моей проблеме. Пожалуйста, отметьте как дубликат или ссылку на существующий ответ, если это необходимо. Вот некоторые примеры данных слегка модифицированные из вышеупомянутого вопроса:Подмножество списка data.frames и возвращаемого списка data.frames
a=c(1,2,3,4,5,6)
b=c(4,5,6,5,5,5)
c=c(3,4,5,6,7,8)
A=data.frame(a=a,b=b,c=c)
B=data.frame(a=c,b=b,c=a)
C=data.frame(a=b,b=c,c=a)
l <- list(A, B, C)
Я хотел бы создать список dataframes, который является подмножеством первоначальных dataframes (в l
), которые соответствуют условию. Например, мне бы хотелось вернуть все значения, больше или равные 4, с более низкими значениями, замененными на NA
, так что мой новый список, subsetl
выглядит следующим образом. (Я не забочусь о сохранении НС находится в правильном месте в dataframe.)
> subsetl
[[1]]
a b c
1 NA 4 NA
2 NA 5 4
3 NA 6 5
4 4 5 6
5 5 5 7
6 6 5 8
[[2]]
a b c
1 NA 4 NA
2 4 5 NA
3 5 6 NA
4 6 5 4
5 7 5 5
6 8 5 6
[[3]]
a b c
1 4 NA NA
2 5 4 NA
6 5 NA
4 5 6 4
5 5 7 5
6 5 8 6
Я надеюсь, что мой пример достаточно ясно понять, но позвольте мне, если не знаете. Это, без сомнения, прост, используя lapply
, sapply
или тому подобное, но я не могу получить синтаксис правильно при использовании списков и особенно когда список данных-кадров является желаемым результатом.
Привет Томас, который отлично подходит и именно то, что я получал в несмотря на плохое объяснение. Благодарю. – user1912925
Другое: 'mapply (replace, l, lapply (l, '<', 4), NA, SIMPLIFY = FALSE)' – flodel