В R применительно к именованному целому числу

Имею следующий массив df

      A  B  C  D  E  F  G
[1,]  0 -4 12 33 -4 -1 -4
[2,]  1 -3 13 34 -3  0 -3
[3,]  2 -2 14 35 -2  1 -2
[4,]  3 -1 15 36 -1  2 -1
[5,]  4  0 16 37  0  3  0
[6,]  5  1 17 38  1  4  1

str df следующий:

int [1:6, 1:7] 0 1 2 3 4 5  ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:7] "A" "B" "C" "D" ...

И я хотел бы для каждого столбца извлечь элементы, которые больше 0, но оставить имена столбцов, например, для создания списка. Один из способов сделать это - использовать lapply

lapply(df,  function(x) x[which(x > 0)])

Но есть две проблемы:

  1. очень медленно для многих операций (по сути, это цикл)

  2. не всегда создает список, который мне нужен (если все исходные элементы случайно все положительные, он оставит его как есть).

Есть ли решение лучше, чем lapply?

у тебя есть матрица?

mtoto 09.08.2018 09:13

Вышеупомянутое целое число, но я думаю, может быть преобразовано в матрицу

Omry Atia 09.08.2018 09:13

целое число (вектор) имеет 1 измерение

mtoto 09.08.2018 09:14

Пожалуйста, предоставьте dput(df). То, что вы показываете, похоже на матрицу.

Roland 09.08.2018 09:14

пожалуйста, опубликуйте результат class(df), я уверен, что это матрица.

Andre Elrico 09.08.2018 09:15

Ваша инструкция неверна, она должна выдать ошибку. Кажется, вам нужен apply, а не lapply.

Rui Barradas 09.08.2018 09:16

int [1: 6, 1: 7] 0 1 2 3 4 5 ... - attr (*, "dimnames") = Список из 2 .. $: NULL .. $: chr [1: 7] "A" «Б» «В» «Г» ...

Omry Atia 09.08.2018 09:16

Пожалуйста, укажите в вопросе полный вывод. Но это матрица. В любом случае лучше lapply(as.data.frame(m), function(x) x[x > 0]) не получишь.

Roland 09.08.2018 09:17

@Rui прав, я промахнулся, lapply не нуждается в 2

Omry Atia 09.08.2018 09:18

Когда вы используете lapply для матрицы, он оценивает ЯЧЕЙКИ, а не СТОЛБЦА.

Andre Elrico 09.08.2018 09:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
10
82
0

Другие вопросы по теме