【发布时间】:2017-03-25 08:19:24
【问题描述】:
我正在尝试根据以特定字符串开头的列名对数据框进行子集化。我有一些像 ABC_1 ABC_2 ABC_3 和一些像 ABC_XYZ_1、ABC_XYZ_2、ABC_XYZ_3 的列
如何对我的数据框进行子集化,使其仅包含 ABC_1、ABC_2、ABC_3 ...ABC_n 列而不包含 ABC_XYZ_1、ABC_XYZ_2...?
我试过这个选项
set.seed(1)
df <- data.frame( ABC_1 = sample(0:1,3,repl = TRUE),
ABC_2 = sample(0:1,3,repl = TRUE),
ABC_XYZ_1 = sample(0:1,3,repl = TRUE),
ABC_XYZ_2 = sample(0:1,3,repl = TRUE) )
df1 <- df[ , grepl( "ABC" , names( df ) ) ]
ind <- apply( df1 , 1 , function(x) any( x > 0 ) )
df1[ ind , ]
但这给了我 ABC_1...ABC_n ...和 ABC_XYZ_1...ABC_XYZ_n...的列名我对 ABC_XYZ_1 列不感兴趣,只有 ABC_1 的列...。任何建议都很重要赞赏。
【问题讨论】: