r - 从 sapply 中排除一列
问题描述
我有一个包含多个列的数据框,我想根据它们的名称对其进行分组。当多个列名称响应相同的模式时,我希望它们分组在一个列中,该列是该组的总和。
colnames(dataframe)
[1] "Départements" "01...3" "01...4" "01...5" "02...6" "02...7" "02...8" "02...9" "02...10" "03...11"
[11] "03...12" "03...13" "04...14" "04...15" "05...16" "05...17" "05...18" "06...19" "06...20" "06...21"
所以我使用这段代码,当每一列都是数字时,它工作得很好,尽管第一个是字符,因此我遇到了错误。如何从代码中排除第一列?
#按模式分组列,寻找模式并循环
patterns <- unique(substr(names(dataframe_2012), 1, 3))` #store patterns in a vector
dataframe <- sapply(patterns, function(xx) rowSums(dataframe[,grep(xx, names(dataframe)), drop=FALSE]))
#loop through
这是我得到的错误代码
rowSums 中的错误(DEPTpolicedata_2012[,grep(xx,names(DEPTpolicedata_2012)),:“x”必须是数字
解决方案
您可以使用简单地删除第一列
patterns$Départements <- NULL
推荐阅读
- c# - 如何将多个 HttpClient 参数传递/注入到类型化的 HttpClientClass?
- google-chrome-extension - Issue with javascript in Chrome window created by extension
- angular - ngx-datatable expand row is not working as expected
- git - 上游删除的文件显示为在 git diff 中添加
- jquery - Tabulator table inside a JQuery UI dialog opens collapsed
- scala - 如何在Scala中声明可变参数抽象函数
- pandas - 基于日期的多条件计数器
- angular - Testing add multiple headers interceptor
- c++ - 模板函数中的多态性
- java - I want to display some text onDoubleClick event how to do so ? i have attached my sourcecode Along