1我有一个对象向量,每个对象对应一列数字,并希望生成一个名称向量,只有向量中的名称,其列不仅为零。
a<-c(0,0,0,0,0,0,0,0,0,0,0,0)
b<-c(1,3,2,5,4,2,1,5,6,7,3,2)
c<-c(0,0,0,0,0,0,0,0,0,0,0,0)
d<-c(1,1,4,5,2,2,1,1,6,2,3,3)
e<-c(0,0,0,0,0,0,0,0,0,0,0,0)
f<-c(1,3,2,5,4,2,1,5,6,7,3,2)
g<-c(0,0,0,0,0,0,0,0,0,0,0,0)
h<-c(1,1,4,5,2,2,1,1,6,2,3,3)
x<-data.frame(a,b,c,d,e,f,g,h)
x<- x[x != "0"]
提取所有非零的元素的向量,但是我喜欢提取所有不包含零行的列名。
谢谢
答案 0 :(得分:3)
names(x)[colSums(pmax(x != 0)) > 0]
答案 1 :(得分:1)
这是一种查找包含至少一个非零值的所有列的列名的方法。
tmp <- colSums(x != 0)
# a b c d e f g h
# 0 12 0 11 0 12 0 11
names(x)[as.logical(tmp)]
# [1] "b" "d" "f" "h"
答案 2 :(得分:1)
与其他人相似。
names(x)[colSums(x)>0]
# [1] "b" "d" "f" "h"