2015-11-17 2 views
-1

У меня есть кадр данных A с заголовками, которые описывают качества личности. Каждое из этих качеств состоит из двух частей, первый из которых имеет 3 возможных ответа, а второй - два возможных ответа. Каждый столбец имеет 0, если человек не обладает этим качеством и 1, если они есть, в категории качества (группы из 3 и 2 ответов) в одном столбце только 1 значение. Первые три столбца кадра содержат имя человека и их координаты.Создание списков из функций столбцов кадров данных

Я хочу создать кадры данных, которые содержат первые три столбца всех людей, у которых есть 1 в каждом столбце для качеств. то есть. ответили ли они 1, 2 или 3 для первого вопроса о качестве. Кадры будут иметь имя заголовка столбца.

На данный момент у меня

Aa <- qualities[qualities$Aa != 0,] 
Ab <- qualities[qualities$Ab != 0,] 
... 
Ae <- qualities[qualities$Ae != 0,] 
Ba <- qualities[qualities$Ba != 0,] 
... 
Ze <- qualities[qualities$Ze != 0,] 

Очевидно, что это глупый способ сделать это. Мне нужно что-то, что для всех столбцов i, i = {количество столбцов качеств}, записывает функцию столбца в новый кадр данных. Я думаю. Я не знаю, как это сделать, хотя я не могу найти способ вызвать столбец i, а затем записать его в заголовок i, поскольку это весь текст.

Заранее благодарен!

+0

Пожалуйста, обратите внимание чтение на [просить], и как произвести [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how -в-сделать-а-пра-р-воспроизводимая-пример). Помогает другим помочь вам. – Heroka

ответ

-1

вы можете поместить dataframes в списке:

n <- names(qualities)[..] # [number of column "Aa" : number of column "Ze"] 
dat.q <- function(q) qualities[qualities[,q]!=0,] 
L <- lapply(n, dat.q) 
names(L) <- n 
Смежные вопросы