#r
#r
Вопрос:
Я хотел бы удалить столбцы, если их четвертая строка содержит «0».
фиктивный фрейм данных:
df lt;- data.frame(a=c(1,2,3,4,5,6), b=(c(0,1,2,0,3,4)), c=c(1,2,0,4,5,6), d=c(1,7,9,4,5,6))
Я уже использовал это для удаления столбцов, когда какие-либо строки содержали нулевое значение :
b lt;- df[,-grep("0", df)]
но я не могу найти способ сделать это с определенной строкой…
Есть какие-нибудь идеи ?
Комментарии:
1.
df[, -grep("0", df[4,])]
? Лучше использовать!grepl
вместо-grep
«хотя», чтобы вы не получили ошибку, если в 4-й строке вообще нет нулей
Ответ №1:
Это довольно простое решение.
df[,which(df[4,]!=0)]
Комментарии:
1. Черт, я пробовал это, но забыл добавить запятую после 4 ! Большое спасибо !
Ответ №2:
subset(df, select=which(df[4,]!=0))