正在try 获取合计为>0的列的列名.我试过了

df[sapply(df, function(x) any(x > 0))]

但这给了我实际的数值.然后我试着

names(df)[colSums(df)>0]

但收到的值为空.下面是我的df的一个例子,我希望得到"SRR960396"和"SRR960403"的输出.

> dput(df)
structure(c(14, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0), dim = 4:3, dimnames = list(
    c("27b1da20c7a5364614a540521d5e38c0", "bd60888ac07bff9651845c6f6aca4fa8", 
    "e7474b1fd688aa54814538b69a56d202", "85907e71eb899b7edce9bf8d23746413"
    ), c("SRR960396", "SRR960402", "SRR960403")))

推荐答案

你应该知道df不是data.frame而是matrix,即,

> class(df)
[1] "matrix" "array"

因此,应该使用colnames(df)而不是names来获取列名.


解决方法是使用colSums+which来定位具有正值的列,例如,

> names(which(colSums(df > 0) > 0))
[1] "SRR960396" "SRR960403"

R相关问答推荐

咕噜中的元素列表:map

根据R中两个变量的两个条件删除带有dspirr的行

如何使用`ggplot2::geom_segment()`或`ggspatial::geom_spatial_segment()`来处理不在格林威治中心的sf对象?

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

在R中替换函数中的特定符号

用相同方法得到不同函数的ROC最优截断值

R函数‘paste`正在颠倒其参数的顺序

一小时满足条件的日期的 Select

使用范围和单个数字将数字与字符串进行比较

为什么我使用geom_density的绘图不能到达x轴?

如何在R中平滑地绘制线图(不拟合)?

从R中发出的咕噜声中的BUG?

来自程序包AFEX和amp;的类/函数和NICE_TABLE&冲突

WRS2包中带有bwtrim的简单ANOVA抛出错误

如何将一些单元格的内容随机 Select 到一个数据框中?

如何对r中包含特定(未知)文本的行求和?

为什么我对圆周率图的蒙特卡罗估计是空的?

判断函数未加载R中的库

为什么不能使用lApply在包装函数中调用子集

如何在R中添加标识连续日期的新列