我使用的是人口普查局的数据,它提供了估计值和误差范围。它下载为一个Excel文件,列名如下:
HC01_EST_VC01
HC01_MOE_VC01
HC02_EST_VC01
HC02_MOE_VC01
HC03_EST_VC01
HC03_MOE_VC01
HC01_EST_VC03
HC01_MOE_VC03
etc.
一旦我读到R表(使用read.csv),我怎么能然后删除/删除误差范围列(例如HC01_MOE_VC01, HC02_MOE_VC01
)?我读过关于删除列与常见的开始片段,但不常见的内部名称片段。
我将感谢你的建议。谢谢!
我们可以使用grep
来子集非'MOE'的列。grepl
的输出是一个逻辑向量。我们得到与匹配模式_MOE_
的子字符串对应的TRUE值,而不匹配则得到FALSE值。我们否定(!
)它,这样TRUE变成FALSE, FALSE变成TRUE,这样所有没有_MOE_
的列名都是TRUE。这可用于列的子集。
df1[!grepl('_MOE_', names(df1))]