У меня есть матрица, которую я хотел бы подмножить и в конечном итоге использовать для создания сюжета. Данные представляют собой список подсчетов для конкретных маркеров крови для каждого пациента в популяции. Это выглядит так:
df <- data.frame(MarkerID=c("Class","A123","A124"),
MarkerName=c("","X","Y"),
Patient.1=c(0,1,5),
Patent.2=c(1,2,6),
Patent.3=c(0,3,7),
Patient.4=c(1,4,8))
Я хотел бы создать кадр данных всех пациентов (столбцы 3-6), которые имеют значение класса нуль (1-я строка) и второй кадр данных всех пациентов с классом 1.
В прошлом я использовал функцию подмножества для выбора строк на основе значений в столбце, можно ли выбрать поднабор столбцов на основе значений в строке?
Я пробовал это:
x <- subset(data, data[1,] == 0)
однако, когда я делаю dim(x)
, число столбцов совпадает с числом dim(data)
, но количество строк отличается. Любые идеи о том, как я могу это сделать, возвращают только те столбцы, значение которых в строке 1 равно 0?
Roland,
Да. Пример df - это то, как выглядит кадр данных. В рамке данных есть ~ 30 000 маркеров и > 400 пациентов, поэтому я не опубликовал dput(head(data))
. Спасибо за реконфигурирующий наконечник, я попробую попробовать.
Ваш примерный код работал для подмножества столбцов на основе строк
data[,c(TRUE,TRUE,data[1,-(1:2)]==1)]
по данным, которые я смог получить, кадр данных со всеми строками и только столбцы с указанным классом.