r - 如何在不更改名称本身的情况下向列名称添加 "add"附加信息?

标签 r grouping r-factor

我有一个带有单独列名称的矩阵(行名称并不重要),如下所示

TestMat<-matrix(1:25,ncol=5,nrow=5)
colnames(TestMat)<-c("A","B","C","D","E")
TestMat

由于各种原因,但主要是因为包稍后需要它,我无法更改矩阵中的值,并且它们都必须是整数。 现在我想对我的列名称进行分类(例如,A、B 和 D 属于“组 1”,C 和 E 属于“组 2”)。这个想法是,随着矩阵中的值随机减少,矩阵稍后会变得更小。一旦列总和达到零,该列就会被删除。在这个过程中,我想看看与其他组相比,一组的分数/大小如何变化。 我认为最简单的方法是将所有相应的列命名为相同:

TestMat2<-matrix(1:25,ncol=5,nrow=5)
colnames(TestMat2)<-c("Group1","Group1","Group2","Group1","Group2")
TestMat2

但这在稍后的分析中给了我错误消息,因为 R 开始以“Group1”“Group1.1”“Group2”“Group1.2”“Group2.1”的方式对相同的列名称进行编号.

我尝试过对列名使用“class”、“attr”和“factor”命令,但没有成功。 有没有我可能从未听说过的技巧或命令?

最佳答案

根据评论,为什么不将分组放入另一个变量中,例如:

> TestMat<-matrix(1:25,ncol=5,nrow=5)
> colnames(TestMat)<-c("A","B","C","D","E")
> F=factor(c("Group1","Group1","Group2","Group1","Group2"))

...对你的矩阵做一些事情...

> summary(F[colSums(TestMat) >= 40])
Group1 Group2 
     1      2

是这样吗(用 40 代替 0)?

关于r - 如何在不更改名称本身的情况下向列名称添加 "add"附加信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20289423/

相关文章:

r - 如何在R中读取多个csv文件并使用fread函数跳过最后一行

XSLT:合并一组树层次结构

json - 使用 jq 从每个主要节点版本获取最新版本

R - 仅显示数据帧子集中使用的级别

r - 如何将字符向量转换为数字?

c++ - 通过命令行使用 R 时出错

r - R 中具有三个条件的 Ifelse()

r - 在 R 中匹配具有动态格式的字符串

tsql - 使用最新日期在 t-sql 中分组

r - 自动将二进制变量编码为因子?