Как создать подмножество столбцов в кадре данных на основе элементов в двоичном векторе - PullRequest
0 голосов
/ 11 января 2019

У меня есть датафрейм, df с n столбцами. Я также случайным образом генерирую двоичный вектор x размером n.

Каждый элемент в двоичном векторе соответствует столбцу в кадре данных. Мне нужна помощь в кодировании функции, которая поднастраивает набор данных на основе элементов в двоичном векторе (т. Е. Если x[i]=0, то столбец ith не должен включаться в новый фрейм данных, df_new. Elif x[i]=1, тогда столбец ith должен быть включен в новый фрейм данных, df_new.

Мне нужна помощь в кодировании логики, описанной выше.

#create a binary feature/column vector
feature_set <- vector(mode="logical", length=4)
#loop over all the items:
for(i in 1:4){
    #for each item, replace it with 0 or 1
    feature_set[i] = sample(0:1, 1);
}
#dataset with 4 features/columns
data.frame(X1 = rnorm(100),X2 = rnorm(100),X3 = rnorm(100),X4 = rnorm(100))

Спасибо.

1 Ответ

0 голосов
/ 11 января 2019

Поскольку вы производите выборку 0 & 1, вам необходимо преобразовать их в логические, прежде чем использовать их для подразделов вашего фрейма данных. Способ сделать это - добавить ведущий !!, т.е.

!!c(0, 1, 0, 1)
#[1] FALSE  TRUE FALSE  TRUE 

Таким образом, чтобы применить к фрейму данных для фильтрации,

df[!!feature_set]

Однако вы можете напрямую выбрать логический вектор, т.е.

i1 <- sample(c(TRUE, FALSE), 4, replace = TRUE)
i1
#[1] FALSE  TRUE FALSE FALSE

#Use i1 to subset,

df[i1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...